Ich bekomme eine POST-Anfrage mit einer Zeichenfolge, die ein JSON-Objekt darstellt.Zugriff Körper der POST-Anfrage innerhalb Erlang httpd
Die _Env
Liste sieht wie folgt aus:
[
{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}
]
Mein Code-Server zu starten ist:
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"}
]}
]).
Dann habe ich eine POST-Anforderung mit einigen Daten innerhalb dieser URL machen:
http://localhost:9000/api/server:auth
Und behandeln Sie diese Anfrage mit diesem Code:
auth(SessionID, _Env, _Input) ->
mod_esi:deliver(SessionID, [
text_header(),
"authenticated"
]).
Ich sehe, dass content_length
34, das eine richtige Anzahl sieht so die Daten in den kommenden zu sein scheint.
Nun, wie kann ich die gebuchten Daten extrahieren mit ihm etwas zu gehen?
Können Sie bitte einen Code auf, wie/von hinzufügen, in dem Sie diese env Liste bekam? – Dogbert
Bitte sehen Sie sich die Details an, die ich zu der Frage hinzugefügt habe. –