编辑:由于某种原因,该服务器需要标题'Accept: application/json'
。当我添加它时,它工作正常。
我尝试了几种不同的方法来处理带有JSON请求正文的PUT请求。我总是收到一个错误消息,说他们没有收到数据。我不知道这是我的代码还是他们的服务器。这就是我现在所拥有的。另外,我尝试了curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
和curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
的每种组合,但没有任何效果。
但是我在使用以下PHP发送完全相同的数据时遇到错误
$curl = curl_init();
$data = json_encode($data_array);
$headers = array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data));
$headers[]= 'Authorization: Basic '.AUTHENTICATION_TOKEN;
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);
答案 0 :(得分:1)
使用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);
}