Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在从命令行(Ubuntu)发送 POST 请求:
echo -n '{"prop":"value"}' | POST -c -U "application/json" http://site.com/test
服务器脚本输出它的 $_POST:
<?php var_dump ($_POST); ?>
我在输出中看到:Content-Length: 16,但作为服务器的响应,我得到
Content-Length: 16
array(0){ }
我错在哪里了?
$_POST包含作为普通表单数据提交的数据的键值对。因为您发送了 JSON 数据,所以它的解析方式不同。
$_POST
您需要检索请求正文。您可以使用http_get_request_body()或将正文视为文件,使用fopen('php://input'). 阅读请求正文后,您可以使用json_decode()它来解析它。
http_get_request_body()
fopen('php://input')
json_decode()
$x = json_decode(http_get_request_body());
看: