我正在尝试向域名http://xyz.com发送curl请求。这是我的代码。
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $strURL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrData);
curl_exec($ch);
在发出请求时,它会被重定向到某个页面,并且不会返回到我的页面。
如何在卷曲请求中间停止重定向。
对不起,伙计们......在建议之后我尝试了CURLOPT_FOLLOWLOCATION为0并且它有效......我错了,我没有删除下一行标题重定向,它继续传递和传递......
抱歉,我的错误。再一次...... CURLOPT_FOLLOWLOCATION为0不会转移......
答案 0 :(得分:1)
尝试使用CURLOPT_MAXREDIRS
选项。
CURLOPT_MAXREDIRS :要遵循的最大HTTP重定向数量。将此选项与CURLOPT_FOLLOWLOCATION一起使用。
答案 1 :(得分:1)
我认为因为该页面会检查您的用户代理或设置Cookie,所以您需要尽可能多地尝试模仿Web浏览器。
喜欢添加用户代理:
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7');
或者尝试设置cookie:
$cookieJar = tempnam ("/tmp", "CURLCOOKIE");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);
如果您提供网址,也许我可以提供更多帮助。
答案 2 :(得分:0)
尝试玩:
CURLOPT_RETURNTRANSFER
,
CURLOPT_FOLLOWLOCATION
,
CURLOPT_COOKIEJAR
,
CURLOPT_COOKIEFILE
考虑记录,使用它更容易调试!
$handle = fopen('log.tmp', 'w');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $handle);