我正在尝试在我的本地服务器上发布PHP中的一些JSON数据。我在下面有以下代码,但它不起作用。我错过了一件至关重要的事吗?
$url = 'http://localhost/mmcv/chart1.php';
//open connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));
$result = curl_exec($ch);
答案 0 :(得分:1)
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));
即使你发布了json,你仍然需要以url编码形式发送数据,所以像
一样发送它curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/x-www-form-urlencoded'));
并使用
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
而不是
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
答案 1 :(得分:1)
也许您的问题出在接收脚本中。 在“mmcv / chart1.php”中尝试以下内容:
$rawInput = file_get_contents('php://input');
if(is_string($rawInput)) {
if(!is_null($jsonInput = json_decode($rawInput, true)))
$_POST = $jsonInput;
}