【已解决】http协议POST请求时获取不到url的query_string

释永战

workerman http协议POST请求时获取不到url的query_string

在使用workerman的时候发送POST请求,请求的URL带有query_string参数,但是在请求类里面获取不到这个query_string参数。

程序代码或配置

接收POST请求的URL类似于http://xxx.xxx/index.php?param=value
POST请求体数据如下

{"id": 1}

获取参数的代码如下

public function onMessage(\Workerman\Connection\TcpConnection $connection, \Workerman\Protocols\Http\Request $request): void
    {
    $connection->send($request->uri());
    }

发现返回的uri结果是/index.php,而不是期望的/index.php?param=value

重现问题的步骤

POST请求一个带有query_string参数的URL
通过请求类的uri()方法返回的数据没有带query_string参数

操作系统环境及workerman/webman等具体版本

Linux CentOS 7.9
PHP 7.4.3
workerman 4.1

问题已解决!是我自己的问题,阿弥陀佛!

433 3 0
3个回答

小W

WorkerRequest 是?

释永战

@walkor 大佬能不能给看看是什么原因?

  • 暂无评论
10bang

测试完全没问题,检查你的代码
截图

  • 释永战 2024-08-01

    好的我再看一下

  • 释永战 2024-08-01

    好像是APIPOST的问题,用那个工具请求就会出错····

  • 10bang 2024-08-01

    这就不清楚了,postman是没问题的

  • 小W 2024-08-02

    我就是用的ApiPost 一点问题没有

×
🔝