Http 响应代码没有改变,调用 die() 可以接受吗?

Http response codes not changing, calling die() acceptable?

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

例如,如果在我的数据库中找不到用户,我想 return 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 也能发送其他代码。

贾斯珀

使用以下内容重定向到 404 页面。

header("location:404.php");

是的,设置正确的响应后结束脚本 headers 通常是正确的操作。我不确定为什么它在没有显式 die 的情况下对您不起作用 - 确保您没有输出任何数据或 headers 之后不应该存在的数据。