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

时间:2017-03-07 13:37:12

标签: php curl

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

我的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响应
  • 从服务器(主机服务器)shell
  • 我收到错误7无法连接到example.domain.com端口80:连接超时
  • 如果在php中尝试file_get_contents(来自主机服务器) - 没有回复
  • URL - 可从浏览器访问(直接php文件)
  • 如果我创建ajax请求 - 响应正常
  • 如果我尝试添加到网址http或https - 总是相同的错误
  • 如果我尝试将限制设置为30秒。相同的结果

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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