【发布时间】:2019-03-31 22:55:51
【问题描述】:
美好的一天..
我有一个网络应用程序,它通过代理向另一台服务器发出请求。现在我会说这些请求中有 99% 都可以正常工作,我从来没有遇到过任何问题并收到回复。
但是,一些请求(同样数量很少)会返回 HTTP 响应代码 0,这意味着 curl 失败。使用 curl_error 调试后,我收集了这 2 个错误。
- OpenSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 URL。
- 操作在 7000 毫秒后超时,收到 0 个字节中的 0 个字节
现在第二个是不言自明的。当然 SSL 错误只是由于一个狡猾的代理,否则我会在每个请求中得到这个响应,而不仅仅是 1%(到相同的 url)?我很确定我的 curl 配置没问题。 (下)。
curl_setopt_array($this->ch, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_AUTOREFERER => 1,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => 0,
CURLOPT_ENCODING => 'gzip',
CURLOPT_HEADER => 0
));
如果响应为空/code = 0,我是否应该添加一个 curl exec 重试?
谢谢。
【问题讨论】:
-
看看stackoverflow.com/questions/9774349/…是否有助于SSL
-
是的,谢谢你帮助我认为 CURLOPT_SSL_VERIFYPEER 可以正常工作。问候。
标签: php curl error-handling timeout