ejabberd HTTP request handlers处理 post get (转载)

小例子http://www.process-one.net/en/wiki/ejabberd_HTTP_request_handlers/



处理GET

http://langxianzhe.com?version=1&token=c617b5435134c1735255edeb4f4b93b4&test=Test

关键是怎么处理Rquest#request.q中数据 以[{},{}]形式组成

我暂时采用了下面的方法 []中元素顺序 需 和url 中的顺序一致
Erlang代码 收藏代码

process([], #request{method = 'GET', q=[{"version", Version}, {"token", Token}, {"test", test} ], host = Server, ip = {IP, _Port}, data = Data}= Request) ->

处理POST
http://langxianzhe.com/
<operator>
<version>1</version>
<test>test</test>
<token>token</token>
</operator>
关键是对Data的解析
Erlang代码 收藏代码

process([], #request{method = 'POST',host = Server, ip = {IP, _Port}, data = Data}= _Request) ->
27 ?DEBUG("in ~p :ip = ~p,data = ~p~n", [?MODULE,IP, Data]),
28 IpStr = inet_parse:ntoa(IP),
29 Tag = xml_stream:parse_element(Data),
30 try
31 case Tag of
32 {xmlelement, "operator", [{_Type, "bind"}], SubEl} ->
33 Version = xml:get_subtag_cdata(Tag, "version"),
34 Vendor = xml:get_subtag_cdata(Tag, "test"),
35 Token = xml:get_subtag_cdata(Tag, "token"),
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值