APP端发起GET请求时,POST并无处理,导致接收的POST参数并不是数组,在Http.php原代码部分:
```php
$_REQUEST = array_merge($_GET, $_POST,$_REQUEST);
```
合并3个数组就存在类型警告问题:
`PHP Warning: array_merge(): Argument #2 is not an array in /Workerman
bytes in file F:\my\layGateIm\im-for-gateway\vendor\workerman\workerman\Protocols\Http.php on
分析原因:英文数据中含有中文字符串,所以我们就可以想到编码的问题,serialize()函数对在不同编码下对中文的处理结果是不一样的。再讲gbk转换成utf8的格式后,每个中文的编码数从2个会增加到3个,所以会导致反序列化的时候判断字符长度出现问题 。
建议更换成json处理或者其他方式。