一尘不染

file_get_contents抛出400错误的请求错误PHP

json

我只是使用a file_get_contents()从这样的用户那里获取最新的tweet:

$tweet = json_decode(file_get_contents('http://api.twitter.com/1/statuses/user_timeline/User.json'));

这在我的本地主机上运行良好,但是当我将其上传到服务器时会引发以下错误:

警告:
file_get_contents(http://api.twitter.com/1/statuses/user_timeline/User.json)[function.file-
get-contents]:无法打开流:HTTP请求失败!HTTP / 1.0 400错误的请求…

不知道是什么原因引起的,也许是我需要在服务器上设置的php配置?

提前致谢!


阅读 310

收藏
2020-07-27

共1个答案

一尘不染

您可能想尝试使用curl而不是file_get_contents来检索数据。curl对错误处理有更好的支持:

// make request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.twitter.com/1/statuses/user_timeline/User.json"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch);

// convert response
$output = json_decode($output);

// handle error; error output
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {

  var_dump($output);
}

curl_close($ch);

这可以使您更好地了解为什么收到此错误。一个常见的错误是达到服务器上的速率限制。

2020-07-27