【发布时间】:2016-05-10 14:22:56
【问题描述】:
我称自己是一位经验丰富的 PHP 开发人员,但这让我发疯。我正在尝试获取用于显示更新警告的存储库的发布信息,但我一直返回 403 错误。为了简化它,我使用了最简单的 GitHub API 用法:GET https://api.github.com/zen。这是一个你好世界。
这行得通
- 直接在浏览器中
- 在终端中使用纯
curl https://api.github.com/zen - 使用 PHP-Github-API-Class,例如 php-github-api
这行不通
- 使用来自 PHP 脚本的简单
file_get_contents()
这是我的整个简化代码:
<?php
$content = file_get_contents("https://api.github.com/zen");
var_dump($content);
?>
浏览器显示Warning: file_get_contents(https://api.github.com/zen): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden,变量$content是布尔值,false。
我想我缺少某种 http-header-fields,但我既不能在 API-Docs 中找到这些信息,也不能使用我的终端 curl-调用任何特殊的头文件并工作。
【问题讨论】:
-
您是否尝试使用Fiddler 来比较不同的调用?
-
allow_url_fopen是否启用? -
allow_url_fopen已启用。感谢@RickS 的工具推荐,我将把它包含在我未来的工作流程中。正如我猜想的那样,解决方案是缺少标题字段。请参阅标记的答案。
标签: php github-api