file_get_contents HTTP 请求失败!未实现 HTTP/1.1 501 方法


file_get_contents HTTP request failed! HTTP/1.1 501 Method Not Implemented

我正在尝试从 json 编码页面中获取一些信息,但是在将值分配给变量时收到 HTTP/1.1 501 方法未实现错误$data

   if(isset($_GET['xblaccount'])) {
        $gamertag = htmlspecialchars(strip_tags($_GET['xblaccount']));
        $url = 'http://www.xboxleaders.com/api/profile.json?gamertag=' . urlencode($gamertag);
        $data = file_get_contents($url);
   }

我也试过

   $gamertag = 'kfj32j8fj23f';

并收到相同的错误

这是一个有趣的问题,因为如果您使用实际的帐户名称(例如 Stallionh83Major Nelson)。

发现这一点后,我在浏览器 (FF) 中检查了标头,该浏览器也返回了 501 响应标头。因此,我假设这是非帐户的服务器端响应。

考虑到这一点,我建议编辑您的代码以:

if(isset($_GET['xblaccount'])) {
    $gamertag = htmlspecialchars(strip_tags($_GET['xblaccount']));
    $url = 'http://www.xboxleaders.com/api/profile.json?gamertag=' . urlencode($gamertag);
    $data = @file_get_contents($url); // @ to suppress the warning
    if($data){
        //Account exists...
    }
    else{
        //Account doesn't exist...
    }
}

如果帐户不存在,$data将返回FALSE,否则将返回JSON字符串。