PHP CURL超时,无论超时是什么

时间:2013-07-05 19:20:59

标签: php curl web-scraping

我正在用PHP编写一个小程序,使用curl登录并从服务中下载一些报告。程序工作正常,直到它应该得到报告的那一点,然后程序保持超时与下面的消息。任何想法或建议?我最初连接的服务器是MS IIS服务器,然后它跳转到此AkamaiGHost服务器以获取报告。

以下是我正在使用的curl setopts

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>

1 个答案:

答案 0 :(得分:0)

我怀疑您的IIS服务器(或您运行脚本的服务器)没有到AkamaiGHost服务器的路由 - 这可能是防火墙问题,DNS问题或其他一些连接问题(可能未设置AkamaiGHost)收听服务器的请求?)。

您应该检查是否可以在服务器上发出传出请求。

尝试登录运行脚本的服务器,并ping AkamaiGHost服务器 - 如果有效,请尝试使用命令行curl(而不是SSL) - 如果可以,那么问题很可能是由于某些事情干扰了传出SSL端口(443)上的连接 - 例如防火墙。