Я получаю запрос POST со строкой, представляющей объект JSON.Доступ к телу запроса POST внутри Erlang httpd
_Env
список выглядит следующим образом:
[
{server_software,"inets/6.3"},
{server_name,"XTR20160414"},
{gateway_interface,"CGI/1.1"},
{server_protocol,"HTTP/1.1"},
{server_port,9000},
{request_method,"POST"},
{remote_addr,"127.0.0.1"},
{peer_cert,undefined},
{script_name,"/api/server:auth"},
{http_host,"localhost:9000"},
{http_accept,"application/json"},
{http_content_type,"application/json"},
{http_content_length,"34"},
{http_connection,"close"},
{content_length,34}
]
Мой код для запуска сервера является:
start() ->
mnesia:start(),
inets:start(httpd, [
{modules, [
mod_alias,
mod_auth,
mod_esi,
mod_actions,
mod_cgi,
mod_dir,
mod_get,
mod_head,
mod_log,
mod_disk_log
]},
{port, 9000},
{server_name, "pokerspace"},
{server_root, "misc/log"},
{document_root, "misc/www"},
{erl_script_alias, {"/api", [server]}},
{error_log, "error.log"},
{security_log, "security.log"},
{transfer_log, "transfer.log"},
{mime_types, [
{"json", "application/json"},
{"html", "text/html"},
{"css", "text/css"},
{"js", "application/x-javascript"}
]}
]).
Тогда я сделать запрос POST на этот адрес с некоторыми данными внутри:
http://localhost:9000/api/server:auth
И обработайте этот запрос с помощью этого кода:
auth(SessionID, _Env, _Input) ->
mod_esi:deliver(SessionID, [
text_header(),
"authenticated"
]).
Я вижу, что content_length
34, который выглядит правильный номер, чтобы данные, кажется, приходит в.
Теперь, как извлечь отправленные данные пойти что-то с этим?
Можете ли вы добавить некоторый код, как /, откуда вы получили этот список окр? – Dogbert
Пожалуйста, посмотрите подробности, которые я добавил к вопросу. –