我正在尝试使用twitch-api使用file_get_contents()
获取用户信息。当我在浏览器中用现有和不存在的链接测试链接时,它在这两种情况下都能正常工作(如果用户存在,则返回用户对象,如果用户不存在则返回错误对象)。
然而,当我想用file_get_contents()
在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);
我认为无论存在有效的HTTP代码(例如200)还是无效的代码(例如404),您都在尝试解析JSON。PHP的问题就在这里,如果有一个无效的HTTP响应代码,它就会失败。但是,您可以通过在方法调用中使用标志来强制PHP接受这一点。看见https://stackoverflow.com/a/4132660/3233827为此。