cURL:操作在 0 毫秒后超时

Posted

技术标签:

【中文标题】cURL:操作在 0 毫秒后超时【英文标题】:cURL: Operation timed out after 0 milliseconds 【发布时间】:2014-04-24 12:20:44 【问题描述】:

cURL 给了我错误:

Operation timed out after 0 milliseconds with 0 out of 0 bytes received

尤其是“0毫秒”部分很可疑……

我的初始化代码:

$curl = curl_init($requestUrl); // private URL not published
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, 
  array("Content-Type: application/xml", "Accept: application/xml"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_HTTP200ALIASES, range(400, 599));
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

超时似乎设置正确,可能与它有关吗?

【问题讨论】:

如果不提供超时怎么办? Related curl issue. 【参考方案1】:

我在尝试通过 https 连接时遇到了同样的问题。问题出在 ssl 版本上。 这对我来说效果很好:

$ch=curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);

【讨论】:

禁用主机验证很臭!并且 TS 已经使用了curl_setopt($curl, CURLOPT_SSLVERSION, 3);

以上是关于cURL:操作在 0 毫秒后超时的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 开发人员工具抛出:Curl 错误:OPERATION_TIMEOUTED 操作在 10000 毫秒后超时,收到 -1 个字节中的 0 个

下载失败。 cURL 错误 28:连接在 10001 毫秒后超时

cURL 错误 28 - x 毫秒后连接超时

如何修复连接超时,cURL 错误 28?

MongooseError - 操作缓冲在 10000 毫秒后超时

无法从 codeigniter paypal 库获得 curl 响应 [关闭]