Odpowiedzi:
Używanie -X
flagi z dowolnym czasownikiem HTTP:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
W tym przykładzie użyto również -d
flagi do dostarczenia argumentów z żądaniem PUT.
GET
po przekierowaniu, dodaj parametr--location
W jednym wierszu polecenie curl byłoby następujące:
a) W przypadku przesyłania danych formularza:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b) Jeśli wysyłasz surowe dane jako json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c) W przypadku wysyłania pliku z żądaniem POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Możesz użyć aplikacji POSTMAN ze sklepu Chrome Store, aby uzyskać równoważne żądanie cURL. Jest to szczególnie przydatne podczas pisania bardziej skomplikowanych żądań.
W przypadku żądania w innych formatach lub dla różnych klientów, takich jak Java, PHP, możesz sprawdzić POSTMAN / komentarz poniżej.
Przykład PUT po komentarzu Martina C. Martina:
curl -T filename.txt http://www.example.com/dir/
Z -T
(tym samym co --upload-file
) curl użyje PUT dla HTTP.
-T
nie zastąpi tego, -X PUT
jeśli chcesz określić parametry za pomocą -d
lub -F
. -T
wysyła zawartość pliku za pośrednictwem PUT. Aby osiągnąć GET
po przekierowaniu, dodaj parametr--location
curl -X PUT -d 'new_value' URL_PATH/key
gdzie,
X - opcja do użycia w poleceniu żądania
d - opcja używana w celu umieszczenia danych na zdalnym adresie URL
URL_PATH - zdalny adres URL
nowa_wartość - wartość, którą chcemy umieścić w kluczu serwera
Spóźniłem się do tego wątku, ale ja też miałem podobny wymóg. Ponieważ mój skrypt dynamicznie konstruował żądanie curl, chciałem podobnej struktury polecenia w GET, POST i PUT.
Oto, co działa dla mnie
Na żądanie PUT :
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
W przypadku żądania POST :
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
W przypadku żądania GET :
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'