1

ドメインにcurlリクエストを送信しようとしています:http://xyz.com。これが私のコードです。

    $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);

リクエストを行っている間、それは内のあるページにリダイレクトされ、私のページに戻らない。

curlリクエストの途中でリダイレクトを停止するにはどうすればよいですか?

ごめんなさいみんな...

提案の後、CURLOPT_FOLLOWLOCATIONを0にしようとしましたが、うまくいきました...ヘッダーリダイレクトの次の行を削除せず、通過し続けたのは私の間違いでした...

すみません、私の間違いです。

もう一度...CURLOPT_FOLLOWLOCATIONを0に転送しません...

4

3 に答える 3

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);

あなたがURLを提供するならば、多分私はもっと助けることができます。

于 2012-06-01T09:02:36.413 に答える
1

CURLOPT_MAXREDIRSオプションを使用してみてください。

CURLOPT_MAXREDIRS : 従う HTTP リダイレクトの最大量。このオプションは、CURLOPT_FOLLOWLOCATION と一緒に使用します。

于 2012-06-01T08:48:57.903 に答える