it-swarm.com.de

Wie mache ich eine PUT-Anfrage mit curl?

Wie teste ich eine RESTful PUT (oder DELETE) -Methode mit curl?

340
John

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.

482
theabraham

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.

POSTMAN to get the request code

78
Prateek

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.

20
Tor Klingberg
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

6

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'
0
sunitkatkar