cURL - это бесплатная утилита командной строки с открытым исходным кодом, используемая для передачи данных на удаленный хост или с него с минимальным вмешательством пользователя. cURL работает с основными протоколами, такими как HTTP, FTP, SCP и SFTP.
Он позволяет пользователям выгружать и скачивать данные с помощью отдельных команд или сценариев bash. Он также предоставляет такие функции, как аутентификация пользователя, туннелирование прокси, загрузка резюме, загрузка на основе форм, сертификаты SSL и многое другое. Можно с уверенностью сказать, что cURL - это больше, чем HTTP-клиент.
В этом руководстве вы познакомитесь с одной функцией cURL, которая позволяет пользователям выполнять почтовые HTTP-запросы с использованием данных файла.
Прежде чем мы начнем, позвольте мне упомянуть, что это не руководство по cURL для новичков; вам необходимо предварительное ноу-хау, особенно знание сетевых протоколов, HTTP-запросов и т. д.
Прежде чем мы сможем погрузиться в использование cURL для выполнения запросов POST, давайте сначала настроим.
Как установить cURL
В большинстве случаев вы найдете cURL установленным в основных дистрибутивах Linux по умолчанию. Чтобы убедиться, что у вас есть cURL, используйте команду
curl --helpЕсли вы получили сообщение об ошибке:
-bash: curl: команда не найденаВам нужно будет установить его, прежде чем продолжить.
Используйте диспетчер пакетов по умолчанию для завершения установки, как показано в приведенных ниже командах:
sudo apt-get updatesudo apt-get install curl -y
Прежде чем обсуждать, как отправлять данные POST из файла с помощью cURL, позвольте мне вкратце рассказать о запросе POST. Как обычно, если вы уже знакомы с этим, можете пропустить; в противном случае, оставайтесь.
Запрос cURL POST
HTTP-запрос post - один из самых популярных методов HTTP / HTTPS-запроса, используемых для отправки данных на удаленный хост для создания или обновления ресурса.
Сейчас:
Пожалуйста, не путайте метод с PUT; хотя они довольно похожи, у них есть свои отличия.
Данные, отправленные с помощью запроса POST, в основном хранятся в теле запроса HTTP-запроса.
Например, рассмотрим приведенный ниже запрос POST, который отправляет имя пользователя и пароль, а также их значения.
POST / с ограничениями / вход.php HTTP / 1.1 хост: linuxhint.com Content-Type: application / x-www-form-urlencoded имя пользователя = linuxhint и пароль = парольЧтобы отправить вышеуказанный запрос POST с помощью cURL, мы можем указать команды как:
curl -x POST -d «имя пользователя = linuxhint и пароль = пароль» https: // linuxhint.com / ограничено / войти.phpВ приведенной выше команде мы использовали параметр -d, чтобы указать cURL включить заголовки по умолчанию, то есть Content-Type: application / x-www-form-urlencoded
Параметр -X указывает метод HTTP-запроса для использования, в данном случае HTTP-запрос POST.
cURL Укажите Content-Type
В некоторых случаях нам может потребоваться указать [явно] Content-Type при отправке запроса. Сущность Content-Type в заголовке указывает тип медиа ресурса, который мы отправляем. Тип носителя также широко известен как тип MIME.
Если вы хотите узнать о типах MIME, обратите внимание на приведенный ниже ресурс:
https: // linkfy.в / IANA-MIME-Типы
Чтобы указать Content-Type в запросе cURL, мы можем использовать флаг -H. Например, отправим MIME Тип приложения / JSON.
curl -X POST -d «имя пользователя»: «linuxhint», «пароль»: «пароль» -H «Content-Type: application / json» https: // linuxhint.com / ограничено / войти.phpВышеуказанное указывает, что мы хотим отправить объект JSON по указанному URL-адресу. Вы можете использовать это, чтобы прочитать значения из файла JSON или отправить их как сырые.
Как читать данные из файла
Предположим, вы хотите делать запросы в командной строке с помощью cURL, но у вас есть данные для отправки, хранящиеся в файле. Вы можете использовать Content-Type, чтобы указать тип носителя, а затем передать путь к файлу, содержащему данные. В этом примере я проиллюстрирую использование объекта JSON.
Файл JSON (данные.json) содержит следующие значения:
"имя пользователя": "linuxhint",
"пароль": "пароль"
Чтобы отправить эти данные из файла JSON, мы можем использовать -d, а затем передать имя файла, как показано в следующей команде:
curl -X POST -H «Content-Type: application / json» -d «@data».json »https: // linuxhint.com / ограничено / войти.phpВы также можете использовать параметр -data-binary.
curl -X POST -H «Content-Type: application / json» --data-binary «@ / home / user / data».json »https: // linuxhint.com / ограничено / войти.phpВы также можете использовать текстовый файл для отправки данных; все, что вам нужно указать, это Content-Type как text / plain.
Например, текстовый файл (данные.txt), содержащий следующие значения
имя пользователя = linuxhint и пароль = парольИспользуя команду cURL, просто отправьте запрос как:
curl -X POST -H «Content-Type: text / plain» -d «data.txt »https: // linuxhint.com / ограничено / войти.phpВы можете использовать другие типы файлов, такие как XML, HTML и многие другие.
Заключение
В этом руководстве мы обсудили, как делать запросы POST и передавать данные в различных форматах. Следует иметь в виду, что cURL не только очень мощный, но и очень гибкий. Он может комбинировать набор параметров в одной команде для создания эффективных запросов. Для получения дополнительной информации я рекомендую документацию cURL, поскольку она хорошо написана.
https: // завиток.se / docs /
Спасибо за чтение и получайте удовольствие от cURL.