【问题标题】:cURL error 28 - Connection timed out after x millisecondscURL 错误 28 - x 毫秒后连接超时
【发布时间】: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 分钟。我删除了我的评论:)

标签: php curl


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 2017-10-20
      • 2023-01-03
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 2020-09-07
      • 2020-01-05
      相关资源
      最近更新 更多