php – 如何处理致命错误:cURL错误7:无法连接到xxxx端口443

我有一个连接到第三方API的脚本.它应该是24/7不间断循环运行(我在重新启动循环之前使用了一个睡眠).

问题是,有时第三方API会被ddosed或连接只是因为这个错误而丢失:

Fatal error: Uncaught exception
‘GuzzleHttp\Ring\Exception\ConnectException’ with message ‘cURL error
7: Failed to connect to xxx.com port 443

有没有办法“破坏”这个致命的错误,以确保代码重新启动并继续,如果可以进行操作或必须我每次出现此错误时手动重新启动?

解决方法:

Michael’s comment

it looks like you can just catch the GuzzleHttp\Ring\Exception\ConnectException exception

像这样:

use GuzzleHttp\Ring\Exception\ConnectException;

try {
    // the code which throws the error
} catch( ConnectException $ex ) {
    switch ( $ex->getMessage() ) {
        case '7': // to be verified
            // handle your exception in the way you want,
            // maybe with a graceful fallback
            break;
    }
}

它出现了guzzle的ConnectException extends some classes并最终扩展了php的Exception,因此您可以安全地使用getCode()方法,允许您捕获一个标识符,您可以根据需要做出相应的反应.

上一篇:php – 将cURL转换为Guzzle POST


下一篇:php – 在Guzzle中同时模拟响应并使用历史中间件