Ich versuche, eine DELETE http-Anfrage mit PHP und cURL zu machen.
Ich habe an vielen Stellen gelesen, wie es geht, aber nichts scheint für mich zu funktionieren.
So mache ich es:
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;
}
Ich gehe dann voran und benutze meine Funktion:
public function deleteUser($extid)
{
$path = "/rest/user/".$extid."/;token=".$this->__token;
$result = $this->curl_req($path,"","DELETE");
return $result;
}
Dies gibt mir HTTP internen Server FEHLER. In meinen anderen Funktionen, die dieselbe curl_req-Methode mit GET und POST verwenden, läuft alles gut.
Also, was mache ich falsch?
Antworten:
Ich habe das endlich selbst gelöst. Wenn jemand anderes dieses Problem hat, ist hier meine Lösung:
Ich habe eine neue Methode erstellt:
Update 2
Da dies einigen Leuten zu helfen scheint, ist hier meine letzte Curl-DELETE-Methode, die die HTTP-Antwort in einem JSON-dekodierten Objekt zurückgibt:
quelle
Um GET, POST, DELETE, PUT aufzurufen, habe ich eine gemeinsame Funktion erstellt
quelle
Meine eigene Klassenanfrage mit wsse-Authentifizierung
quelle
quelle
quelle
$json empty
bedeutet hier? Es ist ohnehin nicht im Geltungsbereich dieser Funktion enthalten, sodass die Verwendung von$json
nichts bewirkt.