2013-07-05 64 views
4

我正在寫一個PHP程序,利用curl登錄並從服務中下載一些報告。該程序工作正常,直到這一點,它應該得到的報告,然後該程序保持超時與下面的消息。任何想法或建議?我最初連接的服務器是MS IIS服務器,然後它跳轉到此AkamaiGHost服務器以進行報告。PHP CURL超時,無論超時是什麼

下面是我使用

curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); 
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); 
curl_setopt($ch,CURLOPT_CERTINFO,true); 
curl_setopt($ch,CURLOPT_HEADER,true); 
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_ANY); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); 
curl_setopt ($ch, CURLOPT_CAINFO,'cacert.pem'); 


Report Response: 
HTTP/1.1 100 Continue 

HTTP/1.1 504 Gateway Time-out 
Server: AkamaiGHost 
Mime-Version: 1.0 
Content-Type: text/html 
Content-Length: 250 
Expires: Fri, 05 Jul 2013 19:14:43 GMT 
Date: Fri, 05 Jul 2013 19:14:43 GMT 
Connection: close 

<HTML><HEAD> 
<TITLE>Gateway Timeout - In read </TITLE> 
</HEAD><BODY> 
<H1>Gateway Timeout</H1> 
The proxy server did not receive a timely response from the upstream server.<P> 
Reference&#32;&#35;1&#46;ed690317&#46;1373051683&#46;bb2c2f0 
</BODY></HTML> 
+0

發佈您的CURL請求也許..你是否存儲cookies/auth適當的下一個請求? –

+0

你需要弄清楚爲什麼akamai的代理無法訪問你試圖訪問的任何服務器。 –

+0

在瀏覽器內部,通話幾乎立即完成...在curl中超時... Cookie和授權不是問題,我正在登錄,抓取另一個頁面,然後抓取另一個頁面。 – Andrew

回答

0

捲曲setopts我懷疑你的IIS服務器(或者你正在運行的腳本服務器)具有對AkamaiGHost服務器的路由 - 這可能是一個防火牆問題,DNS問題或其他連接問題(可能AkamaiGHost沒有設置爲偵聽來自服務器的請求?)。

您應該檢查您是否可以在服務器上發出傳出請求。

嘗試登錄正在運行腳本的服務器,然後ping AkamaiGHost服務器 - 如果工作正常,請嘗試使用命令行卷曲(不是SSL) - 如果這樣可行,那麼您的問題很可能是由於干擾SSL端口(443)上的傳出連接 - 例如防火牆。