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 毫秒后超时