2015-06-14 66 views
8

我正在使用流明嘗試通過guzzle設置簡單的api請求。base_uri不是基於guzzle客戶端實例化

問題是base_uri參數似乎沒有在初始new Client()上正確傳遞。

簡單的例子:

use GuzzleHttp\Client; 

$client = new Client([ 
    'base_uri' => 'https://siteurl.com/api/v2' 
]); 

然後調用通過獲得

$res = $client->get('orders', [ 
    'query' => [ 
     'status' => 'completed' 
    ] 
]); 

不工作的API。我一直小心不要使用絕對URL,如/orders。如果我完全繞過base_uri並將其添加到get方法$client->get('https://siteurl.com/api/v2/orders')上,它就可以工作。

我使用: 「laravel /流明框架」: 「5.0。*」, 「guzzlehttp /狂飲」: 「^ 6.0」

*追問:

我添加了調試標誌,以便我可以比較標題,並且明顯的差異在get請求行中。

get方法(繞過base_uri)絕對URL:

GET/API/V2 /訂單狀態=完成HTTP/1.1

使用base_uri(版本被剝離):

GET/API /訂單?狀態=完成HTTP/1.1

+0

你碰巧搞清楚了嗎?我有完全相同的問題,並且我的base_uri以/結尾,如答案中的建議。 –

+0

不理我的評論。我正在查看我的guzzle版本的錯誤文檔。最新版本使用base_uri,而我回到之前使用base_url的版本。 –

+0

@PaulZepernick我建議爲您工作的修復程序? –

回答

18

你需要用斜槓終止您base_uri/

例如,

use GuzzleHttp\Client; 

$client = new Client([ 
    'base_uri' => 'https://siteurl.com/api/v2/' 
]); 

編輯:注意即base_uri是狂飲6+,而以前的版本中使用BASE_URL。

+4

你最近的評論是救了我。確認使用'base_url'和正斜槓結尾的url可以與Guzzle 5一起使用 –