每当我在浏览器中访问此网址时,它都能正常运行并将文件上传到我的帐户:
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
编辑:我也尝试使用用户代理,但无济于事。
答案 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”);