我在 laravel 框架中使用 Guzzle,但是當主機離線時,我得到一個異常而不是你可以得到的狀態碼getStatusCode()。我現在對請求進行了嘗試,但在此方法之外,我有一個檢查狀態碼的方法。我的問題是如何在 catch 中返回正確的響應,以便可以在此方法之外調用getStatusCode()。我發出請求的代碼如下所示:public function makeRequest($method, $requestUrl, $queryParams = []) { try{ $client = new Client(['http_errors' => false]); return $client->request($method, $requestUrl, [ 'query' => $queryParams ]); }catch(RequestException $exception){ LOG::info($exception->getMessage()); return $exception->getResponse(); } }
1 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
你的想法(總是Response
從方法返回對象)不是按設計工作的。我的意思是您已經看到了,沒有Response
某些情況(例如,當無法建立與主機的連接時,因此,在這種情況下,HTTP流程甚至都不啟動,為什么您沒有任何HTTP狀態碼)。
IMO 是讓您的代碼意識到異常的最佳方法。不要試圖在你的內部處理它makeRequest()
,只是讓它進一步流動,直到你真正可以處理它的地步。
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消