Put curl: rest — How to do a PUT request with cURL?

остальных — Как сделать запрос PUT с помощью cURL?

спросил

Изменено
2 месяца назад

Просмотрено
636 тысяч раз

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

  • остальное
  • http
  • завиток

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

 curl -X PUT -d аргумент=значение -d аргумент2=значение2 http://localhost:8080
 

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

7

Быстрый ответ:

В одной строке команда curl будет выглядеть так:

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

     curl -X PUT -H "Тип контента: multipart/form-data;" -F "key1=val1" "ВАШ_URI"
     
  2. При отправке необработанных данных в формате json:

     curl -X PUT -H "Тип контента: application/json" -d '{"key1":"value"}' "YOUR_URI"
     
  3. При отправке файла с запросом POST:

     curl -X POST "YOUR_URI" -F 'file=@/file-path. csv'
     

Альтернативное решение:

Вы можете использовать приложение POSTMAN из Chrome Store, чтобы получить эквивалентный запрос cURL. Это особенно полезно при написании более сложных запросов.

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

9

Пример PUT после комментария Мартина С. Мартина:

 curl -T имя_файла.txt http://www.example.com/dir/
 

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

2

Я опоздал на эту тему, но у меня тоже было подобное требование. Поскольку мой скрипт динамически строил запрос на 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'
 
 curl -X PUT -d 'новое_значение' URL_PATH/ключ
 

где,

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

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

URL_PATH — удаленный URL-адрес

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

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

Что такое команда cURL? [+ Как использовать]

Как действующий (или начинающий) веб-разработчик, есть большая вероятность, что вы знакомы с HTTP-запросами, особенно при взаимодействии с API.

Платформы API могут быть полезны для автоматизации вызовов ваших запросов и создания более сложных запросов. Но иногда, независимо от того, выполняете ли вы одноразовый тест или какую-то отладку, вы хотите запустить быстрый HTTP-запрос со своего терминала.

Для таких ситуаций cURL — один из лучших бесплатных инструментов веб-разработки, который должен быть у каждого разработчика.

В этой статье мы познакомимся с командой cURL, рассмотрим, как и почему она используется, а также продемонстрируем некоторые распространенные примеры команд cURL и варианты их использования.

Что такое команда cURL?

URL-адрес клиента (cURL, произносится как «завиток») — это инструмент командной строки, который позволяет обмениваться данными между устройством и сервером через терминал. Используя этот интерфейс командной строки (CLI), пользователь указывает URL-адрес сервера (место, куда он хочет отправить запрос) и данные, которые он хочет отправить на этот URL-адрес сервера.

Инструменты API, такие как Postman и Insomnia, предоставляют интерактивный пользовательский интерфейс (UI), который позволяет выполнять различные формы запросов к URL-адресам для получения и обработки запросов. Команда cURL делает то же самое, только в вашем терминале. cURL работает на Linux, Mac и Windows.

Команда cURL использует клиентскую библиотеку передачи URL-адресов libcURL. Эта библиотека поддерживает множество различных протоколов передачи, включая HTTPS, SMTP и FTP. Он также позволяет включать файлы cookie, устанавливать прокси-серверы и добавлять учетные данные для аутентификации при выполнении запросов.

Варианты использования cURL включают тестирование API, загрузку данных из источников, тестирование веб-сайтов и последующие перенаправления с терминала.

Избранный ресурс

Бесплатная электронная книга: Как использовать API

Заполните форму, чтобы узнать, как использовать API.

Как использовать cURL

Вы знаете, что такое команда cURL, но как она работает?

cURL предустановлен в Windows и macOS — в противном случае вы можете загрузить пакет с веб-сайта cURL.

Команда cURL получает URL-адрес для передачи или получения данных вместе с другими параметрами для различных целей.

Синтаксис команды cURL:

cURL [параметры] [URL]

В этой статье используется JSONPlaceholder Fake API для объяснения различных способов использования cURL. Этот фиктивный API содержит различные примеры путей для выполнения запросов.

Запрос данных из источника

Используя метод GET с cURL, вы можете быстро запрашивать данные из источника или API. Вот простая команда cURL, которая делает Запрос GET :

cURL https://jsonplaceholder.typicode.com/todos/1

Без передачи каких-либо флагов или параметров команда cURL по умолчанию выполняет запрос GET к указанному URL-адресу. Команда возвращает тело ответа, отправленное из API, которое в вашем терминале будет выглядеть так:

.
{
«идентификатор пользователя»: 1,
«идентификатор»: 1,
«title»: «delectus aut autem»,
«завершено»: ложь
}

Это похоже на результаты таких платформ, как Postman, показанные ниже:

Кроме того, вы можете включить параметры и значения, чтобы использовать другой метод запроса с помощью команды cURL. Например, вы можете использовать параметр -X (дефис и X в верхнем регистре) с методом запроса. Параметр -X является псевдонимом для —request .

Напишите команду следующим образом:

cURL -X [METHOD] [URL]

Метод GET по умолчанию в первой команде cURL выше аналогичен следующему:

cURL -X GET https://jsonplaceholder.typicode.com/todos/1

Отправить данные в источник

Используя метод POST и команду cURL, вы можете передавать данные на сервер через API. API обрабатывает данные, затем выполняет такие действия, как сохранение их в базе данных, и возвращает ответ, указывающий статус вашего запроса.

Чтобы сделать запрос POST к URL-адресу, используйте параметр -X и передайте POST в качестве значения. Но как насчет добавления данных с запросом? Вы используете другой параметр, -d (дефис и нижний регистр d), который является псевдонимом для —data .

Вы можете использовать два популярных формата данных при отправке данных с запросом: application/x-www-form-urlencoded или application/json . Далее мы рассмотрим оба этих метода.

application/x-www-form-URLEncoded

Если вы не укажете нужный формат, cURL использует application/x-www-form-urlencoded по умолчанию. Вот пример использования этого формата и поддельного API JSON:

cURL -X POST -d «name=cURL&type=article» https://jsonplaceholder. typicode.com/posts

Эта команда отправляет запрос POST на https://jsonplaceholder.typicode.com/posts и передает закодированные данные URL «name= cURL &type=article» , который является ключом имени со значением cURL и ключом типа со статьей ценить.

Для запросов POST , сделанных к JSON Fake API, телом ответа является объект данных, отправленный ему вместе со свойством ID.

Вот тело ответа от API после ввода команды:

{
«имя»: «cURL»,
«тип»: «статья»,
«идентификатор»: 101
}

application/JSON

С помощью cURL вы также можете отправить строковый объект JSON следующим образом:

cURL -X POST -d ‘{«name»: «cURL», «type»: «article»}’ https ://jsonplaceholder.typicode.com/posts

Как описано выше, данные в этом запросе отправляются в формате application/x-www-form-urlencoded . Вот результат API:

{
«{\»название\»: \»cURL\», \»тип\»: \»статья\»}»: «»,
«идентификатор»: 101
}

API понимает, что данные запроса находятся в формате данных в кодировке URL, поэтому интерпретирует их не так, как вы ожидаете. Вы должны указать, что это формат данных JSON, используя параметр -H (дефис с заглавной буквой H), псевдоним для —header и передать заголовок Content-Type следующим образом:

cURL -X POST -d ‘{«name»: «cURL», «type»: «article»}’ -H «Content -Type: application/json» https://jsonplaceholder.typicode.com/posts

Теперь вы получаете правильное тело ответа от API:

{
«имя»: «cURL»,
«тип»: «статья»,
«идентификатор»: 101
}

Вместо ввода строки JSON в терминале вы можете указать файл JSON, который команда cURL будет использовать для параметра данных. Например, предположим, что у вас есть файл с именем data.json со следующим содержимым:

{
«имя»: «cURL»,
«тип»: «статья»
}

Вы можете запустить команду cURL, если она находится в том же проекте, что и файл. Эта команда получит файл JSON, преобразует его в строку и отправит вместе с запросом. Вы получите тот же результат, что и выше:

{
«имя»: «cURL»,
«тип»: «статья»
}

Удаление ресурсов на сервере

Вы можете отправлять запросы на удаление в API, используя метод DELETE и команду cURL. URL-адрес и данные, которые вы предоставляете в этом запросе, зависят от конфигурации API.

Для JSON Fake API вы указываете путь к ресурсу и метод DELETE следующим образом:

cURL -X DELETE https://jsonplaceholder.typicode.com/posts/1

Ответ тело является пустым объектом:

Лучше всего подходит для обновления существующих ресурсов с помощью API

Используя метод PUT и команду cURL, вы можете выполнять запросы «обновления» к API, которые изменяют существующий ресурс. Для JSON Fake API вы указываете путь к ресурсу и PUT и передать некоторые данные для обновления ресурса.

Здесь можно использовать любой формат данных. В этом примере используется application/json :

cURL -X PUT -d ‘{«name»: «json», «type»: «post»}’ -H «Content-Type: application/json» https: //jsonplaceholder.typicode.com/posts/1

Необходимо напрямую указать формат данных в заголовке, чтобы API смог правильно интерпретировать запрос.

Приведенный выше код возвращает тело ответа:

{
«имя»: «json»,
«тип»: «пост»,
«идентификатор»: 1
}

Протоколы и форматы cURL

По умолчанию cURL использует протокол HTTP. Вот некоторые другие протоколы и форматы, которые может использовать cURL:

Протокол передачи файлов

Протокол передачи файлов (FTP) передает файлы с сервера на клиент. Используйте этот протокол с cURL для загрузки файлов следующим образом:

cURL -T [выбранный-файл] «ftp://[целевой-назначение]»

cURL является хорошей заменой стандартному FTP-клиенту.

Простой протокол передачи почты

Простой протокол передачи почты (SMTP) предназначен для отправки данных на SMTP-сервер. Эти данные состоят из текста, который вы отправляете, отправителя и получателя. Это выглядит так:

cURL smtp://[smtp-sever] —mail-from [отправитель] —mail-rcpt \ [получатель] —upload-file [mail-content-file]

Сетевой протокол словаря

Сетевой протокол словаря (DICT) обеспечивает доступ к словарям. Используя его с cURL, вы запускаете следующую команду:

cURL «dict://dict.org/d:hello»

С помощью этой команды вы получите результат, показывающий выбранный словарь и значение слова «hello» из словаря.

Дополнительные протоколы можно найти на справочной странице cURL.

Общие варианты использования cURL

Хотя платформы API обычно предоставляют интуитивно понятные интерфейсы для запроса и передачи данных по URL-адресу, cURL может быть отличным инструментом для использования с терминалом. Вот несколько распространенных вариантов использования команды cURL.

Быстрое тестирование API из терминала

Как мы видели, cURL позволяет вам быстро тестировать API из вашего терминала без необходимости загружать какое-либо приложение на основе API.

Загрузка изображений и файлов на устройство

Поскольку терминал имеет доступ к файловой системе, вы также можете легко загружать изображения с URL-адресов.

Например, вот URL-адрес логотипа Google. Используя cURL, вы можете загрузить изображение следующим образом:

cURL https://www.google.com/images/branding/googlelogo/2x/googlelogo_light_color_272x92dp.png > google-logo.png

Использование cURL и URL-адреса изображения возвращает двоичные данные изображения. Сохранив необработанные данные изображения в файле изображения (с расширением .png, соответствующим расширению исходного изображения), вы можете сохранить изображение на своем устройстве.