2015-04-06 113 views
0

当尝试向外部API发布邮件时,我有这个非常奇怪的事情,我尝试向URL发出POST请求,但是Guzzle发出GET请求(而这是一个对此API采取法律行动,但返回不同的内容)。引导HTTP请求从POST转换为GET

下面是代码:当我使用$this-client->post(…)

我真的不知道下一步怎么办

$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 

同样的事情发生。

+0

当调试选项为真时,你会得到什么?客户端是否实际发送POST或GET? – 2015-04-06 20:40:44

+0

原来我的身体无效,我正在重定向。感谢您的调试建议,我不知道这是可用的。 – 2015-04-07 09:11:55

回答

1

尝试将键'查询'更改为'body'。

1

您可能会收到一个3xx状态代码,以便Redirect用户启用(默认情况下启用重定向)。从docs

[...]传递一个包含“最大”键关联数组来指定 重定向的最大数目和任选提供“严格”键 值,以指定是否使用严格的RFC兼容重定向 (含义重定向POST请求与POST请求与做什么 大多数浏览器做的是重定向POST请求与GET请求)。

//编辑刚才看到你有点回答,你自己在question comments - 仍然在线留下这个答案,因为它提供了一些上下文。