Как сделать запрос PUT с завитком?

Как проверить метод RESTful PUT (или DELETE) с помощью curl?

Ответ 1

Использование флага -X с любым HTTP-глаголом, который вы хотите:

curl -X PUT -d arg=val -d arg2=val2 localhost:8080

В этом примере также используется флаг -d для предоставления аргументов с запросом PUT.

Ответ 2

Вы можете использовать приложение POSTMAN из магазина Chrome.

В одной строке команда curl будет:

a) При отправке данных формы:

curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"

b) При отправке необработанных данных как json:

curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"

c) Если вы отправляете файл с запросом POST:

curl -X POST "YOUR_URI" -F '[email protected]/file-path.csv'

Для запроса с другими форматами или для разных клиентов, таких как java, PHP, вы можете проверить POSTMAN/комментарий ниже.

POSTMAN to get the request code

Ответ 3

Пример PUT, следующий за Мартином Мартином:

curl -T filename.txt http://www.example.com/dir/

С -T (то же, что и --upload-file) curl будет использовать PUT для HTTP.

Ответ 4

curl -X PUT -d 'new_value' URL_PATH/key

где

X - опция, которая будет использоваться для команды запроса

d - опция, используемая для размещения данных на удаленном URL

URL_PATH - удаленный URL

new_value - значение, которое мы хотим поставить на ключ сервера

Ответ 5

Я опоздал к этой теме, но у меня тоже было подобное требование. Поскольку мой сценарий создавал запрос на 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'