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

Posted

技术标签:

【中文标题】cURL 错误 28 - x 毫秒后连接超时【英文标题】:cURL error 28 - Connection timed out after x milliseconds 【发布时间】:2017-07-27 17:58:16 【问题描述】:

是的。我知道关于这个错误有一些类似的问题,但我已经阅读了所有这些,但它并没有解决我的问题,所以:

我的php代码:

    $url = 'example.domain.com/path/file.php'
    $string = 'param=5';

    $ch = curl_init();

    // CURL options
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', 'Content-Length: ' . strlen($string)));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $string);

    return curl_exec($ch);

我这样检查错误:

$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);

 if($curl_errno > 0) 
   echo "cURL Error ($curl_errno): $curl_error\n";
  

$curl_errorno 是 28 并且 curl_error 是 10001 毫秒后连接超时

请帮助或了解我可以检查的内容。

来自 localhost 或其他服务器是否也在工作(curl 或 file_get_content)...有任何提示吗?

从本地机器我通过 php ~4sec 得到 cURL ok 响应 从服务器(主机服务器)外壳我收到错误 7 无法连接到 example.domain.com 端口 80:连接超时 如果在 php 中尝试 file_get_contents(来自主机服务器) - 无响应 URL - 可从浏览器访问(直接 php 文件) 如果我创建 ajax 请求 - 响应正常 如果我尝试添加到 url http 或 https - 总是同样的错误 如果我尝试将限制设置为 30 秒。结果相同

【问题讨论】:

您应该像这样将 CURL_POST 设置为 1 curl_setopt($ch, CURLOPT_POST, 1); 这可能不是问题的原因,但要发布您需要这样做。哦,你能提供你正在尝试使用的 php 文件的链接吗? 连接似乎只是卡住了,所以它会在 10 秒后超时。 允许请求的最长时间现在设置为 10 - 正常请求已经足够了;如果将CURLOPT_TIMEOUT 增加到 20,会发生什么?结果一样? @daan.desmedt 是的 不可能了。评论只能编辑 5 分钟。我删除了我的评论:) 【参考方案1】:

我遇到了这个问题,这是因为您尝试发送请求的 API 不接受同时发送许多产品。然后你需要放置 PHP 睡眠函数,所以在每一个发送的行之间定义了一个范围。在您的代码中添加sleep(seconds of interval);

【讨论】:

【参考方案2】:

您必须增加 CURLOPT_TIMEOUT 或完全删除 cURL 执行超时

【讨论】:

以上是关于cURL 错误 28 - x 毫秒后连接超时的主要内容,如果未能解决你的问题,请参考以下文章

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

Scala / Slick,“等待连接 20000 毫秒后超时”错误

cURL:操作在 0 毫秒后超时

com.mongodb.MongoTimeoutException:在等待连接的10000毫秒后超时

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

HikariPool-1 - 连接不可用,对于非常小的负载服务器,请求在 30000 毫秒后超时