浏览 3802 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-21
最后修改:2011-06-13
小例子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 中的顺序一致 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的解析
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"), 谁有更好的方法 请提供
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |