我想弄清楚,有没有办法将原始json发送到php而不是POST参数。如果可能,那么哪种方式最好,我的意思是请求正文或POST参数。
答案 0 :(得分:4)
发送一个HTTP请求,其中包含一个JSON字符串作为其请求主体(此处:在命令行中使用curl
):
$ curl -d '{"foo":"bar"}' example.com/test.php
在PHP中阅读此请求正文:
$json = file_get_contents('php://input');
解码它:
$data = json_decode($json, true);
如果POST请求的请求正文包含URL编码的键值对(例如$_POST
),则PHP的foo=bar&baz=42
超全局会自动填充为数组。在上面的示例中,您仍在使用带有“POST数据”的HTTP POST请求。它只是不会自动结束$_POST
,因为PHP不知道如何自动解码JSON。