Github 网络钩子 PHP 脚本 returns "Missing HTTP 'Content-Type' header."
Github webhook PHP script returns "Missing HTTP 'Content-Type' header."
一些事前信息:
我有 1 个服务器和 2 个域,一个是实时版本 (live),另一个用于测试目的 (redesign)。
我正在使用 GitHub webhooks 使用存储库自动更新我重新设计的服务器,这样当有多个人在处理存储库时,我们不必每次都手动部署它。
现在,我找到了一个 PHP 脚本 (这正是我使用它的秘密) on GitHub 其中 webhook 是正在解析 returns 一个错误,指出缺少 Content-Type
header,而当我查看 webhook 交付时,它显然有 header.
错误出现在 PHP 脚本的第 33 行,该脚本通过检查
来检查 HTTP_CONTENT_TYPE
是否存在
if (!isset($_SERVER['HTTP_CONTENT_TYPE'])) {
throw new \Exception("Missing HTTP 'Content-Type' header.");
}
问一个实际问题:明明有header,PHP if 怎么会抛出异常?
我认为名字 HTTP_CONTENT_TYPE
是错误的。看起来它已被用作错误 Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE.
的修复程序
通常CONTENT_TYPE
属性应该在RFC 3875
之后使用
我做了一个简单的测试来检查它是如何工作的
在我的网络服务器上创建了一个 index.php
文件
echo $_SERVER['CONTENT_TYPE'].PHP_EOL;
使用 cUrl 打开文件
$ curl -H "Content-Type: application/json" http://localhost
我的输出是
application/json
HTTP_CONTENT_TYPE
属性 未在我的测试用例中设置。
一些事前信息:
我有 1 个服务器和 2 个域,一个是实时版本 (live),另一个用于测试目的 (redesign)。 我正在使用 GitHub webhooks 使用存储库自动更新我重新设计的服务器,这样当有多个人在处理存储库时,我们不必每次都手动部署它。
现在,我找到了一个 PHP 脚本 (这正是我使用它的秘密) on GitHub 其中 webhook 是正在解析 returns 一个错误,指出缺少 Content-Type
header,而当我查看 webhook 交付时,它显然有 header.
错误出现在 PHP 脚本的第 33 行,该脚本通过检查
来检查HTTP_CONTENT_TYPE
是否存在
if (!isset($_SERVER['HTTP_CONTENT_TYPE'])) {
throw new \Exception("Missing HTTP 'Content-Type' header.");
}
问一个实际问题:明明有header,PHP if 怎么会抛出异常?
我认为名字 HTTP_CONTENT_TYPE
是错误的。看起来它已被用作错误 Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE.
通常CONTENT_TYPE
属性应该在RFC 3875
我做了一个简单的测试来检查它是如何工作的
在我的网络服务器上创建了一个
index.php
文件echo $_SERVER['CONTENT_TYPE'].PHP_EOL;
使用 cUrl 打开文件
$ curl -H "Content-Type: application/json" http://localhost
我的输出是
application/json
HTTP_CONTENT_TYPE
属性 未在我的测试用例中设置。