当前位置: 首页 > article >正文

PHP的guzzlehttp/guzzle库在碰到各种异常时的场景

PHP的guzzlehttp/guzzle库在碰到各种异常时的场景

结论:

经过测试得知
在http状态码为1xx, 2xx, 3xx时, 会在111处输出返回
在http状态码为4xx, 5xx时, 会在222处被捕获
在目标服务不可达或其他异常时会在333处被捕获

测试过程:

用其他程序写个接口, 实现输入什么状态码就返回什么状态码.
然后逐个http状态码测试
关掉服务, 再进行测试.
请求不存在的域名或IP时, 进行测试

测试环境:
guzzlehttp/guzzle: 7.9.2
php: 8.1

GuzzleHttp使用源码如下:

public function test()
    {
        $method = 'POST';
        $url = 'http://127.0.0.1:9999/test?code=499';
        $options = [];
        try {
            $http_response = (new \GuzzleHttp\Client())->request($method, $url, $options);
            var_dump(111);//1xx
        } catch (RequestException $e) {
            $http_response = $e->getResponse();//5xx 4xx
            var_dump(222);
        } catch (\Exception $e) { //服务不可达
            var_dump(333);
            throw new ApiException($e->getMessage(), $e->getCode());
        }
        dd($http_response);
}

http://www.kler.cn/a/327454.html

相关文章:

  • 前端框架对比和选择:Vue、React 和 Angular 谁更适合你的项目?
  • Java 死锁及避免讲解和案例示范
  • 初识Linux · O(1)调度算法
  • 新品 | Teledyne FLIR IIS 推出Forge 1GigE SWIR 短波红外工业相机系列
  • 【d57】【sql】1661. 每台机器的进程平均运行时间
  • 【AI学习笔记】基于Unity+DeepSeek开发的一些BUG记录解决方案
  • 【YashanDB知识库】YashanDB-OCI-快速上手
  • 仿真设计|基于51单片机的路口交通灯控制系统仿真
  • sudo 命令:掌握系统权限控制,实现安全高效管理
  • C++----类和对象(一)
  • SpringBoot集成-RocketMQ快速入门
  • 使用 SSH 连接 Docker 服务器:IntelliJ IDEA 高效配置与操作指南
  • Day48_SpringSecurity
  • 上海市计算机学会竞赛平台2024年9月月赛丙组材料组合
  • sql 时间交集
  • C# 变量与常量
  • Unity3D Shader的阴影部分法线效果详解
  • Android Studio | 无法识别Icons.Default.Spa中的Spa
  • 软件设计师——计算机网络
  • 【有啥问啥】卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器