我有一个接受Json有效负载的Rest API,我格式化数据并将其导入SQL数据库。然而,当接收到有效负载时,发送方正在等待响应。
他们不想要一个典型的HTTP 200 OK,他们想要一个带价格等的格式化Json响应。
每当我输出响应到正文时,它似乎没有被格式化为Json,而是显示为字符串,这会导致程序流出错。
我想检查格式是否正确和方法。
忽略所有处理程序和授权,我通常通过
获取有效负载:$payload = (file_get_contents('php://input'));
做我需要做的数据然后回复如下:
(当然,这是在处理程序语句中包装的,但成功的代码段)
http_response_code(200);
$data = array(
"sub_total" => 1000,
"ExtraeChargeTotal" => 0,
"Vat" => 0,
"Total" => 1000
);
$response = json_encode($data);
echo $response ;
这是正确的回应方式吗?一切都按照我的想法进行,在邮差中似乎也是如此。然而,响应是一个字符串,而不是Json
要恢复注释,当json数据必须通过PHP发送时,重要的是通过以下方式强制Content-Type头:
header('Content-Type: application/json; charset=utf-8');
报头后,用echo
发送数据。
例如:
http_response_code(200);
$data = array(
"sub_total" => 1000,
"ExtraeChargeTotal" => 0,
"Vat" => 0,
"Total" => 1000
);
if($response = json_encode($data)){
header('Content-Type: application/json; charset=utf-8');
echo $response ;
}