停止卷曲重定向到新页面

时间:2012-06-01 08:40:50

标签: php curl

我正在尝试向域名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不会转移......

3 个答案:

答案 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)

尝试玩:

  1. CURLOPT_RETURNTRANSFER

  2. CURLOPT_FOLLOWLOCATION

  3. CURLOPT_COOKIEJAR

  4. CURLOPT_COOKIEFILE

  5. 考虑记录,使用它更容易调试!

    $handle = fopen('log.tmp', 'w');
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_STDERR, $handle);