Ich versuche, eine DELETE
Anfrage mit einem URL-Parameter mit CURL zu senden . Ich mache:
curl -H application/x-www-form-urlencoded -X DELETE http://localhost:5000/locations` -d 'id=3'
Der Server sieht jedoch nicht den Parameter id = 3. Ich habe versucht, eine GUI-Anwendung zu verwenden, und wenn ich die URL als: übergebe http://localhost:5000/locations?id=3
, funktioniert es. Ich würde wirklich lieber CURL als diese GUI-Anwendung verwenden. Kann jemand bitte darauf hinweisen, was ich falsch mache?
GET
. Ich möchteDELETE
und nichtGET
und ich versuche, die richtigen REST-Designstandards zu befolgen, daher verwende ich beim Löschen DELETE und nicht GET.Felipsmartins ist richtig.
Es ist erwähnenswert, dass dies daran liegt, dass Sie die Option -d / - data nicht wirklich verwenden können, wenn dies keine POST-Anforderung ist. Dies ist jedoch weiterhin möglich, wenn Sie die Option -G verwenden.
Was bedeutet, dass Sie dies tun können:
Hier ist es ein bisschen albern, aber wenn Sie in der Befehlszeile sind und viele Parameter haben, ist es viel aufgeräumter.
Ich sage dies, weil cURL-Befehle normalerweise ziemlich lang sind. Es lohnt sich also, sie auf mehr als einer Zeile auszuführen, die den Zeilenumbrüchen entgeht.
Dies ist offensichtlich viel komfortabler, wenn Sie zsh verwenden. Ich meine, wenn Sie den vorherigen Befehl erneut bearbeiten müssen, weil Sie mit zsh Zeile für Zeile gehen können. (nur sagen)
Ich hoffe es hilft.
quelle
--data-urlencode
die Daten ausnahmslos zur URL hinzugefügt werden, aber jetzt müssen Sie sie mit kombinieren--get
, damit sie tatsächlich funktionieren.