Я застрял с этой проблемой на некоторое время.Я пытаюсь использовать REST API для изменения определенных настроек пользователя, таких как очистка пользователя и установка его устройства в неактивное состояние.
REST-вызовы сделаны в php, к которому я довольно новичок.Большинство вызовов (get и post) работают просто отлично, поэтому я думаю, что понял основную концепцию php и curl, но просто не могу заставить работать запросы put.Проблема в том, что при вызове REST я получаю взамен код состояния 200, указывающий, что все прошло нормально, но когда я проверяю базу данных, ничего не изменилось, и устройство все еще активно.
Я потратил несколько часов на исследование этой проблемы здесь на stackexchange ( Запрос cURL PUT не работает с PHP , Php Curl возвращает 200, но не публикует , Функция PHP CURL PUT не работает ) и дополнительно читает различные учебные пособия.Для меня мой код выглядит хорошо и имеет смысл, как и многие примеры, которые я нашел в Интернете.Поэтому, пожалуйста, помогите мне найти мою ошибку.
$sn = "123456789";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com/api/sn/".$sn);
$data = array("cmd" => "clearUser");
$headers = array(
'Accept: application/json',
'Content-Type: application/json'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$username = 'XXX';
$password = 'XXX';
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
$output = curl_exec($ch);
curl_close($ch);