无法通过GET访问PHP网站

时间:2013-01-05 02:26:23

标签: php get

每当我在浏览器中访问此网址时,它都能正常运行并将文件上传到我的帐户:

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

但是当我尝试使用file_get_contents之类的东西在PHP中检索它时,我收到此错误消息:

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

您可以看到此网址的示例:http://api.imgur.com/2/upload.json?key=&image=https://www.google.com/images/srpr/logo3w.png

编辑:我也尝试使用用户代理,但无济于事。

2 个答案:

答案 0 :(得分:1)

错误请求通常意味着您提供的参数之一是错误的。我一直在做的是通过从我的webbrowser发送请求来测试API。我测试了URL并检查了结果。

答案 1 :(得分: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”);