将json作为请求主体或POST json发送到变量中

时间:2013-05-15 11:13:05

标签: php

我想弄清楚,有没有办法将原始json发送到php而不是POST参数。如果可能,那么哪种方式最好,我的意思是请求正文或POST参数。

1 个答案:

答案 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。