[英]Using Guzzle's isSuccessful method when catching exceptions
我最近使用Guzzle抓取了一個URL,並且在沒有錯誤的情況下可以正常工作。
但是,如果有例如404
$response = $client->get('http://www.google.com/test')->send();
手冊(“ 響應狀態行” )建議您使用上面的代碼給我打電話
$response->isSuccessful();
但是,如果在接收請求時出錯,則send()
會引發ClientErrorResponseException
。 引發的異常如下
Guzzle\Http\Exception\ClientErrorResponseException
Client error response
[status code] 404
[reason phrase] Not Found
[url] http://www.google.com/test
因此,捕獲該異常顯然可以防止我的應用程序停止運行,但是這意味着我沒有可以在其上調用各種isX
方法的響應對象。
顯然,捕獲異常在某種程度上給了我與isSuccessful
相同的答案,但是上述手冊頁上的其他一些方法也很有用。
我究竟做錯了什么?
您可以指定['exceptions' => FALSE]
作為請求選項。 參見https://github.com/guzzle/guzzle/blob/master/docs/clients.rst#exceptions
或者,當您捕獲異常時,您仍然可以獲得響應:
catch (\GuzzleHttp\Exception\ClientException $e) {
$response = $e->getResponse();
}
http://guzzle3.readthedocs.org/http-client/client.html#exceptions
對於在Github上指出這一點,以下兩點均表示感謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.