我正在从命令行(Ubuntu)发送POST请求:
echo -n '{"prop":"value"}' | POST -c -U "application/json" http://site.com/test
服务器脚本输出$ _POST:
<?php
var_dump ($_POST);
?>
我在输出中看到:Content-Length: 16
,但是在服务器响应中我得到了
array(0){
}
我哪里弄错了?
答案 0 :(得分:3)
$_POST
包含作为普通表单数据提交的数据的键值对。因为您发送了JSON数据,所以它不会被解析相同。
您需要检索请求正文。您可以使用http_get_request_body()
或使用fopen('php://input')
将正文视为文件。阅读完请求正文后,您可以使用json_decode()
对其进行解析。
$x = json_decode(http_get_request_body());
请参阅: