簡體   English   中英

POST Request適用於Postman,但不適用於Guzzle

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM