通过tcpdump抓包,真实传输数据如下所示
Pragma: no-cache
Content-Length: 334
Content-Type: text/xml
<xml><ToUserName><!></ToUserName>
<FromUserName><!></FromUserName>
<CreateTime>1513155527</CreateTime>
<MsgType><!></MsgType>
<Event><!></Event>
<EventKey><!></EventKey>
<MenuId>430813768</MenuId>
</xml>
但是通过var_dump($message)去打印,只有如下数据
array(1) {
=>
array(1) {
["CDATA=>
string(0) ""
}
}
是不是workerman的http解析xml只是解析一部分数据的原因?
因为post数据不是标准的key=value数据格式,所以$_POST得不到。
应该用 $GLOBALS去获取所有数据
但是var_dump($GLOBALS)得到的是NULL
我查看了一下Http.php文件,
打印了一下 var_dump($GLOBALS);,还是显示有数据的,为什么到Event.php中就变成NULL了呢?
哦,gatewayWorker不支持http协议,手册说了
我修改了Http.php的代码,加入xml解析函数parse,然后在Event.php中通过$message就可以获取到了