我正在收到一个包含JSON的POST,问题是当我收到$ _POST为空时。为了测试我何时收到POST,我创建了一个包含$ _POST,$ _GET和$ _REQUEST的文件,它们都是空的。
发送请求的客户端正在执行以下操作:
$itemJson = '{
"id": 00,
"value": "ok"
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: '. strlen($itemJson))
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $itemJson);
curl_close($ch);
老实说,由于没有参数设置,我不明白我是如何得到这些数据的。
有什么想法吗?
答案 0 :(得分:18)
尝试使用PHP,如下所示(当请求是应用程序/ json时,则不会将数据输入$ _POST)
var_dump(json_decode(file_get_contents("php://input")));
答案 1 :(得分:5)
尝试
$request_body = file_get_contents('php://input');
$json = json_decode($request_body);
在您的接收脚本中。