我正在制作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响应代码
修改
错误日志
中显示错误[Tue Jul 14 23:40:07 2015] [error] [client 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方法不允许\ r \ n
答案 0 :(得分:0)
请记住,在发送任何正文之前,必须在服务器端设置response_code并且必须设置 。服务器access.log将记录405但没有文本。
如果在设置response_code之前允许任何字节进入输出缓冲区,则error.log会这样说。您还可以配置php.ini来创建一个php_error.log文件以帮助调试。
窗口: error_log = c:\ apache \ apache2.4 \ logs \ php_errors.log
Linux的 error_log = /apache/apache2.4/logs/php_errors.log