【发布时间】:2015-10-03 13:09:42
【问题描述】:
我正在制作一个 API。
我必须展示错误处理。当任何请求未获取或在 DB 中不存在或任何其他错误时,该错误应伴随json_encode 字符串,并且响应标头中应存在 HTTP 错误代码。
由于 PHP 5.3 没有 http_response_code,我使用了自定义函数,如 PHP documentation page's 第一条评论中所写。
问题是,当我像 http_response_code(405) 这样执行这个函数时,它没有在标题中给出响应代码,而是在 php 错误日志中输入了一个条目。
header('HTTP/1.0 405 Method Not Allowed') 从上面给出的函数内部调用,这会生成一个 PHP 错误日志条目。
为什么会这样?当我使用 POSTMAN 进行 API 调用时,为什么在标头中没有获得 HTTP 响应代码
编辑
错误日志中显示的错误
[2015 年 7 月 14 日星期二 23:40:07] [错误] [客户端 127.0.0.1] PHP 警告:file_get_contents(localhost/APICall_2.php?ip=127.0.0.1):未能打开流:HTTP 请求失败!第 31 行 API_2.php 中的 HTTP/1.0 405 Method Not Allowed\r\n
【问题讨论】:
-
日志中的错误是什么?
-
[2015 年 7 月 14 日星期二 23:40:07] [错误] [客户端 127.0.0.1] PHP 警告:file_get_contents(localhost/APICall_2.php?ip=127.0.0.1):打开流失败:HTTP 请求失败! HTTP/1.0 405 Method Not Allowed\r\n in API_2.php on line 31
-
请不要在 cmets 中转储代码。编辑您的原始帖子以添加任何新信息。
-
对我来说,就像您使用 PHP(向 PHP)发出请求,获取正确的标头,但请求失败。
-
当我删除
header()function 时,我的请求开始获取结果。所以我的请求没有失败。我传递了错误的参数来检查我的错误处理,我用正确的响应代码返回错误。