Здравствуйте, друзья. Команда cURL — это полезная команда особенно для сетевых подключений в терминале. В этом посте вы узнаете, как сделать POST-запрос с помощью cURL. Таким образом, вы сможете быстро выполнить несколько тестов по отправке данных.
Что такое cURL?
Согласно сайту проекта
CURL — ЭТО ИНСТРУМЕНТ КОМАНДНОЙ СТРОКИ И БИБЛИОТЕКА ДЛЯ ПЕРЕДАЧИ ДАННЫХ С ПОМОЩЬЮ URL (АДРЕСОВ).
Также это инструмент не имеющий графического интерфейса, но простой в использовании. Кроме того, он имеет открытый исходный код, что позволяет легко проводить аудит ПО.
cURL доступен практически в любом дистрибутиве Linux, а в некоторых из них даже установлен по умолчанию. Поэтому получить его не составит труда.
Данный инструмент используется в командных строках или скриптах для передачи данных. Его применение простирается от компьютеров, до автомобилей, телевизоров и других устройств, которым он необходим.
И так поехали.
Установка cURL на Ubuntu / Debian
Как я уже говорил, cURL доступен практически для любой системы и лучше всего его устанавливать из официальных репозиториев. Итак, чтобы установить его, откройте терминал и выполните следующие команды.
sudo apt update
sudo apt upgrade
Это так быстро и просто.
Теперь проверьте установленную версию.
curl --version
Образец ответа терминала.
Теперь мы можем продолжить.
Как сделать POST-запрос с помощью cURL на Ubuntu / Debian
Идея заключается в отправке данных с помощью HTTP POST. Это очень удобно для скриптов и конфигураций. В целом синтаксис выглядит следующим образом.
curl -X POST [options] [URL]
Не обязательно, но обычно POST-запрос выполняется при использовании HTML-форм.
Если вы хотите отправить некоторые данные подобным образом, вы также можете использовать параметр -d.
curl -d "name=Angelo&website=unixcop" -X POST https://linuxwin.ru/
В этом случае информация отправляется на определенный адрес. Для этого запрашивается Имя и Веб-сайт. Как видите, таким образом, включаются некоторые данные. Для этого обратите внимание, что вам нужен точный адрес получателя данных.
Существует опция -H, с помощью которой вы можете указать формат, в котором будут отправлены данные. Например, если вы хотите отправить информацию в HTML-форме с форматом application/x-www-form-urlencoded, то нужно указать его.
curl -X POST https://linuxwin.ru/form -H "Content-Type: application/x-www-form-urlencoded" -d "name=Angelo1&email=sas@unixcop.com"
Таким образом, cURL уже знает в каком формате передавать данные. Другой пример с этим же параметром — в формате JSON.
curl -X POST https://linuxwin.ru/json -H 'Content-Type: application/json' -d '{"name": "angelo", "password": "21125"}'.
Повторяю, вы должны знать в каком формате сайт будет обрабатывать запрос, прежде чем определять команду curl.
Еще один полезный пример — обработка XML-файлов.
curl -X POST https://linuxwin.ru/echo/post/xml -H "Content-Type: application/xml" -d "<Data><Id>1</Id><Username>setiwik</Username></Data>"
Или отправить файл. Для этого случая curl по умолчанию включает отправку формата в зависимости от файла, но вы должны указать полный путь к файлу. Вы также можете указать конкретный тип с помощью опции -H.
curl -d @[путь] https://linuxwin.ru/server
Как видите, процесс прост.
Заключение
В этом посте вы узнали как использовать cURL для отправки данных с помощью POST. Надеюсь вам понравилось и вы сможете применить это в своих проектах.