Estoy tratando de hacer una solicitud http DELETE usando PHP y cURL.
He leído cómo hacerlo en muchos lugares, pero nada parece funcionar para mí.
Así es como lo hago:
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;
}
Luego sigo adelante y uso mi función:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Esto me da un ERROR de servidor interno HTTP. En mis otras funciones usando el mismo método curl_req con GET y POST, todo va bien.
Entonces, ¿qué estoy haciendo mal?
Respuestas:
Finalmente resolví esto yo mismo. Si alguien más tiene este problema, aquí está mi solución:
Creé un nuevo método:
Actualización 2
Dado que esto parece ayudar a algunas personas, aquí está mi método final curl DELETE, que devuelve la respuesta HTTP en el objeto decodificado JSON:
fuente
Para llamar a GET, POST, DELETE, PUT Todo tipo de solicitud, he creado una función común
fuente
Mi propia solicitud de clase con autenticación wsse
fuente
fuente
fuente
$json empty
significa aquí? De todos modos, no está dentro del alcance dentro de esta función, por lo que el uso de$json
no hará nada.