Пользовательский модуль httpd Erlang — как отправлять пользовательские заголовки HTTP и Content-Type

Я реализую собственный модуль для сервера Erlang httpd (inets). Я могу успешно ответить содержимым HTML со следующей реализацией метода do:

do(_ModData) ->
    Body = "<html><body>Hello world</body></html>",
    {proceed, [{response, {200, Body}}]}.

но проблема в том, что я не могу найти способ ответить с помощью пользовательских заголовков и типа контента text/xml.

Согласно документам erlang httpd, я могу ответить [{response,{response,Head,Body}}], где «Head — это список ключевых значений полей заголовка HTTP» (цитата из документации), но каким должен быть точный формат этого списка? Я пробовал следующее, но выдает 404:

do(_ModData) ->
    Body = "<html><body>Stats Placeholder</body></html>",
    Head = ["Content-Length", "40", "Content-Type", "text/html"],
    {proceed, [{response, {response, Head, Body}}]}.

Любая помощь в этом будет оценена по достоинству, документы и примеры для erlang httpd действительно скудны...


person Pawel Stolowski    schedule 08.09.2011    source источник


Ответы (3)


Попробуйте [{content_length, "40"}, {content_type, "text/html"}]

person Tereska    schedule 28.01.2012

Попробуйте [{"Content-Length", "40"}, {"Content-Type", "text/html"}]

person W55tKQbuRu28Q4xv    schedule 08.09.2011

РЖУ НЕ МОГУ. Есть в доке.

[{code, 200}, {content_length, "40"}, {content_type, "text/html"}]
person user2865689    schedule 10.10.2013