代码之家  ›  专栏  ›  技术社区  ›  jacobdo

twitch file_get_contents php给出404而不是错误json

  •  1
  • jacobdo  · 技术社区  · 9 年前

    我正在尝试使用获取用户信息 file_get_contents() 使用twitch api。当我在浏览器中测试现有和不存在的链接时,这两种情况下都可以正常工作(如果用户存在,则返回用户对象,如果用户不存在,则会返回错误对象)。

    然而,当我想在 PHP 具有 文件获取内容() ,当用户存在时,它确实工作正常,但当用户不存在时,PHP抛出 Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found .

    我的代码如下:

    $username = $_GET['username'];
    $result = file_get_contents('https://api.twitch.tv/kraken/users/'.$username);
    var_dump($result);
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Community CDub    7 年前

    我认为您正在尝试解析JSON,无论是否存在有效的HTTP代码(例如200)或无效的HTTP(例如404)。PHP的问题就在这里,如果存在无效的HTTP响应代码,它就会失败。但是,您可以通过在方法调用中使用标志来强制PHP接受这一点。看见 https://stackoverflow.com/a/4132660/3233827 为此。