[在尝试发布到外部API时,我发生了一件非常奇怪的事情,我尝试向URL发出POST请求,但Guzzle却发出GET请求(这是对此API的合法操作,但返回的内容与)。
这里是代码:
$request = $this->client->createRequest('POST', 'sessions', [
'json' => [
'agent_id' => $agentId,
'url' => $url
],
'query' => [
'api_key' => $this->apiKey
]
]);
echo $request->getMethod(); // comes out as POST
$response = $this->client->send($request);
echo $request->getMethod(); // suddenly becomes GET
当我使用$this-client->post(…)
时也会发生同样的事情>
我真的不知道下一步该怎么做。
[在尝试发布到外部API时,我发生了一件非常奇怪的事情,我尝试向URL发出POST请求,但Guzzle却发出GET请求(这是对此API的法律诉讼...] >
您可能会收到3xx状态代码,以便Redirect
订户加入(默认情况下,重定向已启用)。从docs:
[...]传递一个包含“ max”键的关联数组以指定重定向的最大数量,并可以选择提供“严格”密钥值,用于指定是否使用严格的RFC兼容重定向(表示将POST请求与POST请求一起重定向VS。大多数浏览器都通过GET请求重定向POST请求
尝试将键“查询”更改为“正文”。
请将query
切换为form_params
。在Guzzle 6中有效。
我遇到了同样的问题。原因是当存在代码为301或302的位置重定向时,Guzzle会将Request-Method更改为“ GET”。我在RedirectMiddleware.php中找到了“问题代码”。