J'essaye de faire une demande DELETE http en utilisant PHP et cURL.
J'ai lu comment le faire dans de nombreux endroits, mais rien ne semble fonctionner pour moi.
Voici comment je fais:
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;
}
Je continue ensuite et utilise ma fonction:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Cela me donne une ERREUR de serveur interne HTTP. Dans mes autres fonctions utilisant la même méthode curl_req avec GET et POST, tout se passe bien.
Alors qu'est-ce que je fais de mal?
Réponses:
J'ai finalement résolu ce problème moi-même. Si quelqu'un d'autre a ce problème, voici ma solution:
J'ai créé une nouvelle méthode:
Mise à jour 2
Puisque cela semble aider certaines personnes, voici ma dernière méthode curl DELETE, qui renvoie la réponse HTTP dans un objet décodé JSON:
la source
Pour appeler GET, POST, DELETE, PUT Tout type de demande, j'ai créé une fonction commune
la source
Ma propre demande de classe avec authentification WSSE
la source
la source
la source
$json empty
dire ici? Ce n'est de toute façon pas dans la portée de cette fonction, donc l'utilisation de$json
ne fera rien.