我已经尝试了几种不同的方式来通过JSON请求主体执行PUT请求。我总是收到一个错误消息,说他们没有收到数据。我不知道这是我的代码还是他们的服务器。这就是我现在所拥有的。另外,我尝试了curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
和curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
的每种组合,但没有任何效果。应该是什么
$curl = curl_init();
$data = json_encode($data_array);
$headers = array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data));
$headers[]='Authorization:'.$access_token;
$headers[]= 'Authorization: Basic '.AUTHENTICATION_TOKEN;
curl_setopt($curl, CURLOPT_PUT, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
使用curl_errno为了得到特定的错误如下:
$error_msg = NULL;
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
}
curl_close($ch);
if ($error_msg !== NULL) {
print_r($error_msg);
}