Відповіді:
Використання -X
прапора з будь-яким HTTP дієсловом, яке ви хочете:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
Цей приклад також використовує -d
прапор для надання аргументів із вашим запитом PUT.
GET
перенаправлення після, додайте параметр--location
У одному рядку командою 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 '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'