【问题标题】:twitch file_get_contents php gives 404 instead of error json抽搐 file_get_contents php 给出 404 而不是错误 json
【发布时间】:2015-12-29 17:14:29
【问题描述】:

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

但是,当我想在 PHPfile_get_contents() 中完成相同的操作时,当用户存在时它确实可以正常工作,但当它不存在时,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);

【问题讨论】:

  • 我在浏览器中打开它时也会收到 404 代码。想详细说明您的期望吗?无论如何从响应中获取 JSON?出于什么目的?我同意将错误作为否定结果并不是检查这种情况的最佳方法。但是,也许 file_get_contents() 不是最好的方法,你应该考虑使用例如卷曲。
  • 问题是什么?你想达到什么目的?
  • 如果具有提供的用户名的用户不存在而不是 php 生成错误,我想得到一个错误 json。当我尝试在浏览器的地址栏中进行测试时,我在浏览器中看到了这个:{"error":"Not Found","status":404,"message":null}
  • 我宁愿不将 cURL 用于像这样微不足道的事情。

标签: php json twitch


【解决方案1】:

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

【讨论】:

  • 这就是我要找的。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 2017-08-31
  • 2015-05-26
相关资源
最近更新 更多