Próbuję wykonać polecenie DELETE http przy użyciu PHP i cURL.PHP CURL DELETE request
Przeczytałem, jak zrobić to w wielu miejscach, ale nic nie działa dla mnie.
To jak to zrobić:
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;
}
I potem iść dalej i korzystać z funkcji:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
To daje mi http Internal Server Error. W innych moich funkcjach używających tej samej metody curl_req z GET i POST wszystko idzie dobrze.
Co więc robię źle?
Błąd serwera wewnętrznego oznacza, że był problem ze skryptem otrzymania zapytania. – Brad
Dzięki Brad - Wiem, myślę, że to dlatego, że nie jest wysyłane jako żądanie DELETE. Jeśli użyję wtyczki klienta REST do Firefoksa i wyślę dokładnie to samo żądanie z DELETE, to działa dobrze. Więc szwy jak cURL nie wysyła żądania jako DELETE. – Bolli
Istotne? http://stackoverflow.com/questions/2081894/handling-put-delete-arguments-in-php –