-2

ブラウザに URL を入力すると、詳細な出力が返されます。ただし、curl リクエストでこれを実行しようとすると、リクエストが空になります。なぜこれが起こっているのですか?

URL はhttps://api.500px.com/v1/users?oauth_token=AihBz6ZWedu3VxnQdy2tqWtbwV86wtOuXumhPapk&oauth_verifier=YhKo0kaGhfw0dFhparxU&consumer_key=0OvWThqr5j1ZYX1cPaa8y0y1aOfJBbDtpX85fJ42です。

私のコードは次のとおりです。

<!DOCTYPE html>


<?php



function fetchData($url) {
             $ch = curl_init();
               curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_VERBOSE, 1);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
   curl_setopt($ch, CURLOPT_FAILONERROR, 0);
   curl_setopt($ch, CURLOPT_URL, $url);
   $returned = curl_exec($ch);
   echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';
   curl_close ($ch);
   echo $returned;
             return $returned;
    }


);
        // Pulls and parses data.

    $returned = fetchData("https://api.500px.com/v1/users?oauth_token=xElRwQ6cqItG8Siy9kFBpwkj5sCdlp33NRva5TZU&oauth_verifier=hbNdYnqm8BSyuiZYa4KZ&consumer_key=0OvWThqr5j1ZYX1cPaa8y0y1aOfJBbDtpX85fJ42");
    var_dump($returned);
if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}
    $result = json_decode($returned);
        print_r($returned);



// if(!curl_errno($ch))
// {
//  $info = curl_getinfo($ch);

//  echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
// }

echo "working";
echo curl_error($ch);
echo "workign4";
print_r(curl_getinfo($ch)); 
echo "working6";



?>


</html>
4

1 に答える 1

0

cURL を介してリクエストを行う場合と、ブラウザーで手動でリクエストを行う場合は、両方の場合で同じ URL パラメーターを送信した場合でも、異なるコンテンツが表示される可能性があります。理由はいくつかあります。

  • POST データ: ブラウザは、cURL の場合に送信するのを忘れた POST データを送信しています。

  • Cookie: Web ブラウザーは、コンテンツを表示するために必要な Cookie をサーバーに送信しています。

  • IP: ローカル サーバーの場合は問題ありませんが、Web ホストの場合は異なります。

于 2013-07-19T08:31:27.780 に答える