[英]Laravel 5: Guzzle -> getStatusCode on Exception?
我正在為自己編寫一個小應用程序。 此應用程序使用Guzzle
包調用不同的網站。
但是,我想將每個請求與時間和請求持續時間以及我得到的請求狀態代碼一起存儲在我的數據庫中。 我現在在這里面臨的問題是,當請求失敗時,我不知道如何獲取 http 狀態代碼。
到目前為止,這是我的代碼:
$client = $this->getGuzzleClient();
$request = $client->post($url, $headers, $value);
try {
$response = $request->send();
return $response->getBody();
}catch (\GuzzleHttp\Exception\RequestException $e){
dd(array($e, $e->getResponse()));
}
$e->getResponse()
返回null
。 我還嘗試使用$e->getStatusCode()
或$e->getRequest()->getStatusCode()
。 兩者都不起作用...
為了絕對確定請求是有效的,我處理了一個真正的異常,我調用了這個網站https://httpstat.us/503
。 這將返回 503 http 狀態代碼...
那么,如何獲取http狀態碼呢? 你們有什么想法嗎?
親切的問候和謝謝!
如果捕獲到ServerException,則捕獲到5xx,如果代碼執行進入,則Guzzle會收到5xx。 如果您捕獲到一個RequestException,它也包含網絡錯誤。 如果代碼執行是在RequestException上輸入的,而沒有在ServerException上輸入的,則意味着Guzzle不是5xx錯誤,而是網絡錯誤。
$errorstatuscode=$exception->status;
// 從異常對象獲取錯誤代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.