我使用cURL而不是PHP来访问ASPX网站。在我的浏览器上,它显示根据请求我得到一个302 Found
(实际重定向到另一个站点),并立即向重定向页面发送另一个请求。
在我的cURL上,我总是得到200 OK
,这是具有讽刺意味的错误,因为我正在访问的下一页(模仿重定向)返回500
,可能在上一页中出错了
作为测试我试图访问我自己的网站,我正在重定向页面。我在200 OK
上也获得了curl_getinfo($curl);
,但返回页面的内容明确显示标题为HTTP/1.1 302 Found
另外一个奇怪的事情是,curl_getinfo($curl);
一直返回200 OK,即使我知道自己重定向时访问自己的网站也是如此。
为什么我的curl_getinfo
上有200 OK而不是302?
谢谢!
答案 0 :(得分:2)
我的猜测是CURLOPT_FOLLOWLOCATION
。
答案 1 :(得分:2)
除CURLOPT_FOLLOWLOCATION个答案外:
您还可以设置CURLOPT_HEADERFUNCTION选项并查看重定向,例如通过
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');
...
curl_exec($ch);
...
function read_header($curl, $header) {
echo $header;
return strlen($header);
}
启用CURLOPT_FOLLOWLOCATION后,您应该获得类似
的输出HTTP/1.0 301 Moved Permanently
Date: Fri, 20 Apr 2012 11:26:37 GMT
Server: Apache
Location: http://www.spiegel.de/
Content-Length: 230
Content-Type: text/html; charset=iso-8859-1
X-Cache: MISS from lnxp-3968.srv.mediaways.net
X-Cache-Lookup: MISS from lnxp-3968.srv.mediaways.net:91
Via: 1.0 lnxp-3968.srv.mediaways.net (squid/3.1.4)
Connection: close
HTTP/1.0 200 OK
Date: Fri, 20 Apr 2012 11:25:38 GMT
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
Cache-Control: max-age=120
Expires: Fri, 20 Apr 2012 11:27:38 GMT
X-Host: lnxp-2885
X-Robots-Tag: index, follow, noarchive
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 161305
Vary: Accept-Encoding
Age: 59
X-Cache: HIT from lnxp-3954.srv.mediaways.net
X-Cache-Lookup: HIT from lnxp-3954.srv.mediaways.net:90
Via: 1.1 www.spiegel.de, 1.0 lnxp-3954.srv.mediaways.net (squid/3.1.4)
Connection: close
在这种情况下,显示http://spiegel.de的请求被重定向到http://www.spiegel.de