我正在構建API,但在使用cURL進行測試時遇到了一些問題。發佈JSON時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 [「數據」。
這一直工作,直到我設置我的頭在cURL。沒有他們設置,數據通過沒有問題。
究竟是什麼問題?你提到它沒有標題可以正常工作,但是它們有什麼問題? –
@JohnVanDeWeghe OP正在使用json數據,但沒有正確發送json數據。請參閱下面的答案 – alwaysLearn
問題是我需要標頭類型來正確處理請求。但是在cURL中設置它們時,不會發送數據。 – Stromgren