CURLOPT_POST字段为空

时间:2016-11-18 22:51:19

标签: php curl

我正在使用以下代码进行POST。但是,$ _POST的内容为null。我在这里缺少什么?

epsilon = 1

2 个答案:

答案 0 :(得分:1)

$_POST超全球仅用于Content-Type: application/x-www-form-urlencoded;即格式为foo=1&bar=2的键/值对。您正在发布JSON。在服务器端使用它而不是使用超全局:

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

此外,我建议您发布的cURL客户端代码中进行以下更改:

替换

CURLOPT_CUSTOMREQUEST => "POST",

CURLOPT_POST => 1,

并添加

CURLOPT_RETURNTRANSFER => 1,

答案 1 :(得分:0)

POST数据不应编码为JSON,它应该是name=value&name=value&...形式的URL编码字符串。此外,即使处理了JSON,您也没有为参数指定名称,那么您期望$_POST中的密钥是什么?

如果您提供关联数组CURLOPT_POSTFIELDS,它会自动为您编码。

'CURLOPT_POSTFIELDS' => array('orderData' => $orderData)

然后在服务器脚本中,您可以使用$_POST['orderData']