0

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

4

1 回答 1

4

发送一个以 JSON 字符串作为请求正文的 HTTP 请求(此处:curl在命令行上使用):

$ curl -d '{"foo":"bar"}' example.com/test.php

在 PHP 中阅读此请求正文:

$json = file_get_contents('php://input');

解码它:

$data = json_decode($json, true);

如果 POST 请求的请求正文包含 URL 编码的键值对(例如),PHP 的$_POST超全局变量会自动填充为数组。在上面的示例中,您仍然使用带有“POST 数据”的 HTTP POST 请求。它只是不会自动结束,因为 PHP 不知道如何自动解码 JSON。foo=bar&baz=42$_POST

于 2013-05-15T11:19:14.937 回答