Wie teste ich eine RESTful PUT (oder DELETE) -Methode mit curl?
Verwenden Sie das Flag -X
mit dem gewünschten HTTP-Verb:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
In diesem Beispiel wird auch das Flag -d
verwendet, um der PUT-Anforderung Argumente bereitzustellen.
Sie können die App POSTMAN im Chrome Store verwenden.
In einer einzelnen Zeile würde der Befehl curl lauten:
a) Wenn Sie Formulardaten senden:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Wenn Rohdaten als Json gesendet werden:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) Wenn Sie eine Datei mit einer POST - Anforderung senden:
curl -X POST "YOUR_URI" -F '[email protected]/file-path.csv'
Für die Anfrage mit anderen Formaten oder für andere Clients wie Java, PHP können Sie den POSTMAN/Kommentar weiter unten lesen.
Ein Beispiel PUT nach Martin C. Martins Kommentar:
curl -T filename.txt http://www.example.com/dir/
Mit -T
(gleich wie --upload-file
) verwendet curl PUT für HTTP.
curl -X PUT -d 'new_value' URL_PATH/key
woher,
X - Option, die für den Anforderungsbefehl verwendet werden soll
d - Option, die verwendet wird, um Daten in die entfernte URL zu stellen
URL_PATH - entfernte URL
new_value - Wert, den wir dem Schlüssel des Servers hinzufügen wollen
Ich komme zu spät zu diesem Thread, aber ich hatte auch eine ähnliche Anforderung. Da mein Skript die Anforderung für curl dynamisch erstellt hat, wollte ich eine ähnliche Struktur des Befehls in GET, POST und PUT.
Hier ist was für mich funktioniert
FürPUTrequest:
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
FürPOSTrequest:
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
FürGETrequest:
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'