2012-07-16 56 views
8

重置連接,基本上,此錯誤只發生在捲曲PHP CURL錯誤 - 捲曲:(56)的Recv故障:通過對

curl: (56) Recv failure: Connection reset by peer 

但是,當我直接直接訪問它的鏈接我的瀏覽器,它的作品!

你有什麼建議來解決這個問題或導致這個錯誤?

注:服務器被編碼在ASP,它僅出現在一個API調用

+1

是否有一個cookie發送? – Pete 2012-07-16 08:52:06

+0

是在控制檯上,這也是錯誤,捲曲請求上沒有標題/選項。也沒有cookie涉及.. – 2012-07-16 08:53:42

+0

我猜這是一個服務器錯誤,但我不知道服務器發生了什麼部分或部分 – 2012-07-16 08:54:48

回答

3

我記得面臨這個問題很長一段時間了。雖然我不記得究竟排序的問題,但我記得嘗試以下操作:

1)我試圖直接通過在URL中的查詢參數,我試圖通過POST方法

2)我嘗試使用代理,捲曲,看看我是否有可能被封鎖的其他服務器

3)我相信我也問了我的主人尋找到它,他們提出了一些Apache的設置更改

+1

你還記得結果嗎? – 2012-12-10 23:06:03

+0

我認爲主機確實改變了一些Apache設置,但不確定它們是什麼設置。在更改設置後立即開始工作。另外,我在curl請求中發送參數的方式可能存在問題。 – Sam 2012-12-12 11:41:59

+0

我也在這裏,litespeed反ddos措施可能會暫時禁止呼叫IP。我相信這是發生在我身上的事情。我們仍在討論。 – 2012-12-13 21:42:50

3

我解決了這個通過從URL中刪除空白字符來解決問題。在我的情況下,代理服務器出錯了,而不是Web服務器。

在PHP:

 curl_setopt($ch, CURLOPT_URL, trim($url)); 
+0

如果空白字符是URL的有效部分,則可以使用rawurlencode()函數替換空格字符,並使用%20 – fjaeger 2017-04-25 08:45:06

0

我有類似的問題,這樣的代碼:

 $url = "http://xxx.xxx.xxx.xxx"; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_PORT, 44455); //Set the port to connect to 
     //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     echo $xml = curl_exec($ch); 
     if(curl_errno($ch)) 
     { 
      echo 'error:' . curl_error($ch); 
     } 
     curl_close($ch); 

得到它通過禁用該解決:

 //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455);