【问题标题】:Http response codes not changing, calling die() acceptable?Http 响应代码不变,调用 die() 可以接受吗?
【发布时间】:2015-07-23 07:54:45
【问题描述】:

我开发了一个 php (5.5) API 来连接我服务器上的数据库。到目前为止,除了我要发送 http 响应代码的部分之外,一切都运行顺利。

例如,如果在我的数据库中找不到用户,我想返回 404 以在我的应用程序 (android) 中做出相应的反应。

我无法使用以下任一方法将状态代码从 200 更改为:

header("HTTP/1.1 404 Not Found, true, 404);

http_response_code(404);

但是,如果我像这样手动调用 die():

http_response_code(404);
echo json_encode("Some response I want to send anyways");
die();

我得到了预期的状态码。

这样调用 die() 可以接受吗?或者有没有更好的方法来确保我的 API 发送正确的响应代码?

感谢您花时间阅读本文。

编辑 1: 这并不特定于 404 代码。我希望我的 API 也可以发送其他代码。

碧玉

【问题讨论】:

    标签: php api httpresponse http-response-codes


    【解决方案1】:

    使用以下命令重定向到 404 页面。

    header("location:404.php");
    

    【讨论】:

    • 如何响应 404 http 状态应该由 Web 服务器或客户端管理,而不是由应用程序服务器强制执行。
    • 我不想重定向到一个页面。我需要响应代码,以便我的客户可以做出相应的反应。这并非特定于 404 代码。 (我已经编辑了问题以澄清这一点)
    【解决方案2】:

    是的,在设置正确的响应标头后结束脚本通常是正确的操作。我不确定为什么如果没有明确的 die 它对您不起作用 - 请确保您之后没有输出任何不应该存在的数据或标题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-09
      • 2013-05-26
      • 2011-05-21
      • 2013-02-07
      • 1970-01-01
      • 2020-08-31
      • 2020-11-12
      相关资源
      最近更新 更多