Ответы:
Используя -X
флаг с любым HTTP-глаголом, который вы хотите:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
В этом примере также используется -d
флаг для предоставления аргументов вашему запросу PUT.
GET
после перенаправления добавьте параметр--location
В одной строке команда curl будет выглядеть так:
а) При отправке данных формы:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
б) При отправке необработанных данных в формате json:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
в) При отправке файла с запросом POST:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
Вы можете использовать приложение POSTMAN из Chrome Store, чтобы получить эквивалентный запрос cURL. Это особенно полезно при написании более сложных запросов.
Для запроса с другими форматами или для других клиентов, таких как Java, PHP, вы можете проверить POSTMAN / комментарий ниже.
Пример PUT, следующий за комментарием Мартина С. Мартина:
curl -T filename.txt http://www.example.com/dir/
С -T
(так же, как --upload-file
) curl будет использовать PUT для HTTP.
-T
это не заменит, -X PUT
если вы хотите указать параметры с помощью -d
или -F
. -T
отправляет содержимое файла через PUT. Для достижения GET
после перенаправления добавьте параметр--location
curl -X PUT -d 'new_value' URL_PATH/key
где,
X - опция для команды запроса
d - опция для размещения данных на удаленном URL
URL_PATH - удаленный URL
new_value - значение, которое мы хотим поместить в ключ сервера
Я опоздал к этой теме, но у меня тоже было подобное требование. Так как мой скрипт динамически создавал запрос на curl, я хотел создать аналогичную структуру команды для GET, POST и PUT.
Вот что у меня работает
Для запроса PUT :
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Для запроса POST :
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
Для запроса GET :
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'