2017-03-07 39 views
0

是的。我知道有這個犯錯的一些相似的問題,但我一直在讀了這一切,並沒有解決我的問題,所以:cURL錯誤28 - x毫秒後連接超時

我的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毫秒

請幫助或得到一些線索我可以檢查什麼。

從本地主機或其他服務器是否也工作(捲曲或file_get_content)...有什麼提示嗎?

  • 從本地機器我從服務器(主機服務器)外殼通過PHP〜4秒
  • 捲曲OK響應,收到錯誤7無法連接到example.domain.com 80端口:連接超時
  • 如果在PHP嘗試file_get_contents(從主機服務器) - 無響應
  • URL - 從瀏覽器(直接PHP文件)
  • 訪問如果我創建ajax請求 - 響應是確定
  • 如果我嘗試添加到URL http或https - 總是相同的錯誤
  • 如果我試圖將限制設置爲30秒。相同的結果
+1

你應該將CURL_POST設置爲1,像這樣'curl_setopt($ ch,CURLOPT_POST,1);'這可能不是問題的原因,但是發佈你需要這樣做。哦,你可以提供鏈接到你正在嘗試做到這一點的PHP文件? – Zeus

+0

連接似乎只是卡住,所以10秒後超時。 –

+0

允許請求的最大時間現在設置爲10 - 正常請求更多,然後足夠;如果將'CURLOPT_TIMEOUT'增加到20,會發生什麼?相同的結果? –

回答

0

我有這個問題,這是因爲你試圖發送請求的API不能同時發送很多產品。那麼你需要把PHP睡眠函數,所以在每個發送的行之間定義一個範圍。在您的代碼中添加sleep(seconds of interval);