2015-04-06 114 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 - 仍然在線留下這個答案,因爲它提供了一些上下文。