我正在构建 API,但在使用 cURL 进行测试时遇到了一些问题。
我的代码如下所示:
$people = array( array('name' => urlencode('casper'),
'shoesize' => urlencode(41)
),
array('name' => urlencode('charlotte'),
'activated' => urlencode(1)
)
);
$data = http_build_query(array('data' => json_encode($people)));
$url = '...';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Connection: Keep-Alive'
));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
URL 端点的方法只返回 $_POST['data']。
这一直有效,直到我在 cURL 中设置我的标题。如果没有设置它们,数据将毫无问题地通过。