gpt4 book ai didi

php - 捕获异常时使用Guzzle的isSuccessful方法

转载 作者:行者123 更新时间:2023-12-01 16:26:38 25 4
gpt4 key购买 nike

我最近使用 Guzzle 来抓取 URL,在没有错误的情况下效果很好。

但是,如果有 404,那么我们就说

$response = $client->get('http://www.google.com/test')->send();

手册( Response Status Line )建议上面的代码将允许我调用

$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 上指出这一点

关于php - 捕获异常时使用Guzzle的isSuccessful方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com