Search code examples
phpjsonfile-get-contents

file_get_contents throws 400 Bad Request error PHP


I'm just using a file_get_contents() to get the latest tweets from a user like this:

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

This works fine on my localhost but when I upload it to my server it throws this error:

Warning: file_get_contents(http://api.twitter.com/1/statuses/user_timeline/User.json) [function.file-get-contents]:failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request...

Not sure what might be causing it, maybe a php configuration I need to set on my server?

Thanks in advance!


Solution

  • You might want to try using curl to retrieve the data instead of file_get_contents. curl has better support for error handling:

    // 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);
    

    This may give you a better idea why you're receiving the error. A common error is hitting the rate limit on your server.