Я пытаюсь выполнить HTTP-запрос DELETE с помощью PHP и cURL.
Я много раз читал, как это сделать, но, похоже, у меня ничего не работает.
Вот как я это делаю:
public function curl_req($path,$json,$req)
{
$ch = curl_init($this->__url.$path);
$data = json_encode($json);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $req);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));
$result = curl_exec($ch);
$result = json_decode($result);
return $result;
}
Затем я использую свою функцию:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Это дает мне ОШИБКУ внутреннего HTTP-сервера. В других моих функциях, использующих тот же метод curl_req с GET и POST, все идет хорошо.
Так что я делаю не так?
Ответы:
Я наконец решил это сам. Если у кого-то еще есть эта проблема, вот мое решение:
Я создал новый метод:
Обновление 2
Поскольку это, кажется, помогает некоторым людям, вот мой последний метод curl DELETE, который возвращает HTTP-ответ в декодированном объекте JSON:
источник
Чтобы вызвать GET, POST, DELETE, PUT Все виды запросов, я создал одну общую функцию
источник
Мой собственный запрос класса с аутентификацией wsse
источник
источник
источник
$json empty
здесь значит? В любом случае это не входит в область действия этой функции, поэтому использование$json
ничего не даст.