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 будет выглядеть так:
При отправке данных формы:
curl -X PUT -H "Тип контента: multipart/form-data;" -F "key1=val1" "ВАШ_URI"
При отправке необработанных данных в формате json:
curl -X PUT -H "Тип контента: 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/комментарий ниже.
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, соответствующим расширению исходного изображения), вы можете сохранить изображение на своем устройстве.