dongqiang1226 2014-10-21 21:35
浏览 223

从Guzzle中捕获cURL错误

I have the following code that makes a Guzzle 4.1 request:

$client = new \GuzzleHttp\Client(['defaults/headers/User-Agent' => $userAgentString]);

$retry = 0;

do {
    try {
        return $client->post($url, $options);
    } catch (\Exception $e) {
        echo $e->getMessage();
        $retry++;
        continue;
    }
} while ($retry < 3);

It runs happily for quite a while but at random intervals it will sometimes have an issue with the cURL CA file which causes a fatal error due to an uncaught exception. I'm not sure I can do about this because I already have it in a try catch block.

Here is the error that takes down my Laravel console command:

cURL error 77: error setting certificate verify locations:
  CAfile: /home/vagrant/Projects/test.dev/laravel/vendor/guzzlehttp/guzzle/src/cacert.pem
  CApath: /etc/ssl/certs (0)
PHP Fatal error:  Uncaught exception 'ErrorException' with message 'include(/home/vagrant/Projects/test.dev/laravel/vendor/filp/whoops/src/Whoops/Exception/Inspector.php): failed to open stream: Too many open files' in /home/vagrant/Projects/test.dev/laravel/vendor/composer/ClassLoader.php:382

What I would like to do is not only figure out why Guzzle is getting this cURL error, but also how I can catch it if it crops up in other systems that have this cURL issue so it doesn't just crash the process.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题