如何在PHP中设置HTTP响应状态码和消息

13

我有一个页面,用于检查通过HTTP POST发送的数据(http://example.com/http_post)。如果数据正确,我会将其添加到数据库并希望将HTTP响应代码设置为201,并作为HTTP响应的成功消息。如果不是,则我将收集错误并希望将HTTP响应代码和消息设置为序列化的JSON数组,作为HTTP响应。

1)在PHP中将错误数组序列化为JSON的语法是什么?

示例


```php $json_errors = json_encode($errors); ```
{
  "message": "The request is invalid.",
    "modelState": {
      "JobType": [ "Please provide a valid job type eg. Perm"]
  }
}
  1. 如何设置并返回HTTP响应为412的语法。
  2. 如何设置并返回序列化JSON作为http响应正文。

提供一个设置所有http响应标头的示例将会很有帮助。

谢谢

1个回答

12

你可能正在寻找...

$arr = array('message' => 'blah'); //etc

header('HTTP/1.1 201 Created');
echo json_encode($arr);

1
据我所知,使用这个例子时,数组没有在响应中返回,并且实际上没有任何作用,或者是我错过了什么?对我来说,仅使用<?php header('HTTP / 1.1 201');?>会产生与此接受的答案相同的响应,这也会产生与仅使用http_response_code(402);相同的响应,区别在于header必须在文件的开头使用以便起作用(在发送任何输出之前)。 - ashleedawg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接