首页 >后端开发 >php教程 >如何从 Guzzle 捕获异常?

如何从 Guzzle 捕获异常?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-01 09:48:30234浏览

How to Catch Exceptions from Guzzle?

从 Guzzle 捕获异常

简介

使用 Guzzle 测试 API 时,处理异常是对于确保可靠且信息丰富的错误报告至关重要。然而,在 Guzzle 中捕获异常有时可能具有挑战性,因为未处理的异常错误可能会持续存在。

Guzzle 3

要从 Guzzle 捕获异常,请按照以下步骤操作:

  1. 将测试包装在 try/catch 块中。
  2. 将事件监听器添加到客户端的事件调度程序,如 Guzzle 文档中所述。
  3. 在事件监听器内,通过用新的响应对象替换响应对象并防止进一步传播来处理特定的 HTTP 响应代码(例如 401、400)。

故障排除

如果如果您仍然遇到未处理的异常错误,请尝试通过修改客户端创建过程来禁用 Guzzle 的异常。对于 Guzzle 3

$client = new \Guzzle\Http\Client($httpBase, array(
  'request.options' => array(
     'exceptions' => false,
   )
));

这将允许您检索所有 HTTP 状态代码而不引发异常。

Guzzle 5.3 和 Guzzle 6

对于 Guzzle 5.3Guzzle 6,程序略有不同:

Guzzle 5.3:

$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );

Guzzle 6:

$client = new \GuzzleHttp\Client(['http_errors' => false]);

处理 HTTP 响应代码

一旦禁用异常,您就可以使用响应对象的getStatusCode() 方法检索 HTTP 响应代码。相应地处理预期的代码,例如 200 表示成功,304 表示没有更改,或 404 表示未找到。如果遇到意外的代码,请考虑抛出自定义异常。

以上是如何从 Guzzle 捕获异常?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn