[英]POST Request works with Postman, but not with Guzzle
在我的Laravel應用程序中,我經常需要使用Guzzle將數據POST到API。
API用戶使用承載令牌進行身份驗證,並請求和接受原始json。 為了測試,我使用Postman訪問了API,一切都運行得非常好。
郵差標題:
Accept:application/json
Authorization:Bearer [token]
Content-Type:application/json
和郵遞員身體:
{
"request1" : "123456789",
"request2" : "2468",
"request3" : "987654321",
"name" : "John Doe"
}
郵遞員返回200,並返回JSON對象作為響應。
現在,當我嘗試使用Guzzle時,我得到一個200狀態代碼,但沒有返回JSON對象。 這是我的Guzzle實現:
public function getClient($token)
{
return new Client([
'base_uri' => env('API_HOST'),
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
]);
}
$post = $client->request('POST', '/path/to/api', [
'json' => [
'request1' => 123456789,
'request2' => 2468,
'request3' => 987654321,
'name' => 'John Doe',
]
]);
使用Guzzle發布JSON有一些技巧嗎? 如果沒有,有沒有辦法調試引擎蓋下發生的事情?
在我的生活中,我不能理解Postman POST和Guzzle POST之間的區別。
您必須為headers
使用headers
配置部分,而不是根級別。
return new Client([
'base_uri' => env('API_HOST'),
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json',
],
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.