提问者:小点点

GET请求而不是POST


我确信这将被标记为重复,但我已经浏览了所有关于同一主题的给定问题,并尝试了许多建议的解决方案,但它们都不起作用。

我在一个laravel项目中,我有一个通过Guzzle发出的post请求。

           $client = new \GuzzleHttp\Client();
           $response = $client->request('POST', $url, [
                'headers' => [
                    'Authorization' => 'Bearer ' . $apiToken,
                    'Accept' => 'application/json',
                    'Content-Type' => 'application/json',
                    'allow_redirects' => false,
                    // 'allow_redirects'=>['strict'=>true]
                ],
                'json' => json_decode($logText, true)
            ]);

我一直在获取返回的响应“消息”:“此路由不支持GET方法。支持的方法:POST.”

我已经检查过了,实际上,它正在向上面指定的同一个$url发送GET请求。

起初我没有这些allow_redirects设置,但当我搜索时,这两个设置都作为潜在的解决方案提供了。 不幸的是,这两个选项都会导致相同的错误消息:此路由不支持GET方法。

为什么我的POST请求会变成GET请求?

我还尝试了$client->post,这也变成了一个GET请求。

我还再次检查了GET错误消息实际上不是来自POST请求内部:它不是。 邮局的路线根本没有被击中。

PHP版本7.2,Laravel版本6.0.2,Guzzle版本6.5.3


共1个答案

匿名用户

检查服务器上的重定向,如HTTP->; HTTPS。 重定向总是一个GET请求,这会使非GET路由变得混乱。 始终使用正确的协议(如始终使用HTTPS)将绕过重定向。