2

ブラウザで次の URL にアクセスすると、問題なく動作し、ファイルがアカウントにアップロードされます。

http://api.imgur.com/2/upload.json?key=<my key>&image=<url to image>

しかし、PHP で のようなものを使用して取得しようとすると、file_get_contents次のエラー メッセージが表示されます。

Warning: file_get_contents(<URL>): failed to open stream:
HTTP request failed! HTTP/1.1 400 Bad Request

次の URL で例を確認できます: http://api.imgur.com/2/upload.json?key=&image=https://www.google.com/images/srpr/logo3w.png

編集:ユーザーエージェントも使用しようとしましたが、役に立ちませんでした。

4

2 に答える 2

1

不正なリクエストとは、ほとんどの場合、指定したパラメーターの 1 つが間違っていることを意味します。私が常に行っていることは、Web ブラウザーからリクエストを送信して API をテストすることです。URL をテストし、結果を確認します。

于 2013-01-05T02:31:35.007 に答える
1

curl を使用してください。php で url_fopen が無効になっている可能性があります。

また、ユーザーエージェントを完全に制御できます

次のコードを使用します。

function getContentWithCurl($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // Set so curl_exec returns the result instead of outputting it.
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT , ">>>PUT_USER_AGENT_HERE<<<" );
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
        curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

        // Get the response and close the channel.
        $response = curl_exec($ch);
        curl_close($ch);
        return $response;
    }

getContentWithCurl( "YOUR_URL_HERE" );

于 2013-01-05T02:53:09.583 に答える