我正在ejabberd中构建一个自定义HTTP模块,该模块基本上以erlang编码。客户端正在请求中发送表单数据。如何在erlang的API处理程序中解析或读取表单数据。
谢谢
如果使用httpc:request/4,则结果可以是{ok, Result} | {ok, saved_to_file} | {error, Reason}
。如果{ok, Result}
为Result
,则为tuple()
,例如:
% Response
{ok, {{"HTTP/1.1",200,"OK"},
[{"date","Tue, 05 Mar 2019 20:38:51 GMT"},
{"server","Google Frontend"},
{"content-length","54"},
{"content-type","text/html; charset=utf-8"},
{"x-cloud-trace-context",
"801e26cb1bec64bbf24fd1e9259893e9"}],
"Thank you for this dump. I hope you have a lovely day!"}}
对于此响应,获取所有标头并从标头中读取data
字段,例如:
1> {ok, Resp} = {ok, {{"HTTP/1.1",200,"OK"},
[{"date","Tue, 05 Mar 2019 20:38:51 GMT"},
{"server","Google Frontend"},
{"content-length","54"},
{"content-type","text/html; charset=utf-8"},
{"x-cloud-trace-context",
"801e26cb1bec64bbf24fd1e9259893e9"}],
"Thank you for this dump. I hope you have a lovely day!"}}.
2> {_Status, Headers, _Body} = Resp.
3> Headers.
[{"date","Tue, 05 Mar 2019 20:38:51 GMT"},
{"server","Google Frontend"},
{"content-length","54"},
{"content-type","text/html; charset=utf-8"},
{"x-cloud-trace-context",
"801e26cb1bec64bbf24fd1e9259893e9"}]
4> proplists:get_value("date", Headers).
"Tue, 05 Mar 2019 20:38:51 GMT"
如果使用其他HTTP客户端库,则需要阅读官方文档,并查看返回的结果