Как использовать данные публикации cURL из файла

How Use Curl Post Data From File



cURL - это бесплатная утилита командной строки с открытым исходным кодом, используемая для передачи данных на удаленный хост или с него с минимальным вмешательством пользователя. cURL работает с основными протоколами, такими как HTTP, FTP, SCP и SFTP.

Он позволяет пользователям выгружать и скачивать данные с помощью отдельных команд или сценариев bash. Он также предоставляет такие функции, как аутентификация пользователя, туннелирование прокси, загрузка резюме, загрузка на основе форм, сертификаты SSL и многое другое. Можно с уверенностью сказать, что cURL - это больше, чем HTTP-клиент.







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



Прежде чем мы начнем, позвольте мне упомянуть, что это руководство по cURL не для новичков; вам необходимо предварительное ноу-хау, особенно знание сетевых протоколов, HTTP-запросов и т. д.



Прежде чем мы сможем погрузиться в использование cURL для выполнения запросов POST, давайте сначала настроим.





Как установить cURL

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

curl –-help

Если вы получили сообщение об ошибке:



-bash: curl:командане найден

Вам нужно будет установить его, прежде чем продолжить.

Используйте диспетчер пакетов по умолчанию для завершения установки, как показано в приведенных ниже командах:

судо apt-get update

судо apt-get installзавиток-а также

Прежде чем обсуждать, как отправлять данные из файла с помощью cURL, позвольте мне вкратце рассказать о запросе POST. Как обычно, если вы уже знакомы с этим, можете пропустить; в противном случае, оставайтесь здесь.

Запрос cURL POST

Почтовый HTTP-запрос - один из самых популярных методов HTTP / HTTPS-запроса, используемых для отправки данных на удаленный хост для создания или обновления ресурса.

Теперь :

Пожалуйста, не путайте метод с PUT; хотя они довольно похожи, у них есть свои отличия.

Данные, отправленные с использованием запроса POST, в основном хранятся в теле запроса HTTP-запроса.

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

ПОЧТА/ограниченный/login.php HTTP/1.1Хост: linuxhint.com Content-Type: application/x-www-form-urlencodedимя пользователя= linuxhint&пароль= пароль

Чтобы отправить вышеуказанный запрос POST с помощью cURL, мы можем указать команды как:

завиток-ИксПОЧТА-d имя пользователя= linuxhint&пароль= пароль https://linuxhint.com/ограниченный/login.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.to/IANA-MIME-Types

Чтобы указать Content-Type в запросе cURL, мы можем использовать флаг -H. Например, отправим MIME Тип приложения / JSON.

завиток-ИКСПОЧТА-d {имя пользователя: linuxhint, пароль: пароль} -ЧАСContent-Type: приложение/json https://linuxhint.com/ограниченный/login.php

Вышеуказанное указывает, что мы хотим отправить объект JSON по указанному URL-адресу. Вы можете использовать это, чтобы прочитать значения из файла JSON или отправить их как сырые.

Как читать данные из файла

Предположим, вы хотите делать запросы в командной строке с помощью cURL, но у вас есть данные для отправки, хранящиеся в файле. Вы можете использовать Content-Type, чтобы указать тип носителя, а затем передать путь к файлу, содержащему данные. В этом примере я проиллюстрирую использование объекта JSON.

Файл JSON (data.json) содержит следующие значения:

{
'имя пользователя':linuxhint,
'пароль':'пароль'
}

Чтобы отправить эти данные из файла JSON, мы можем использовать -d, а затем передать имя файла, как показано в следующей команде:

завиток-ИКСПОЧТА-ЧАСContent-Type: приложение/json-d @data.json https://linuxhint.com/ограниченный/login.php

Вы также можете использовать параметр –data-binary.

завиток-ИКСПОЧТА-ЧАСContent-Type: приложение/json--data-binary @ /дом/Пользователь/data.json https://linuxhint.com/ограниченный/login.php

Вы также можете использовать текстовый файл для отправки данных; все, что вам нужно указать, это Content-Type как text / plain.

Например, текстовый файл (data.txt), содержащий следующие значения

имя пользователя= linuxhint&пароль= пароль

Используя команду cURL, просто отправьте запрос как:

завиток-ИКСПОЧТА-ЧАСContent-Type: текст/простой-ddata.txt https://linuxhint.com/ограниченный/login.php

Вы можете использовать другие типы файлов, такие как XML, HTML и многие другие.

Заключение

В этом руководстве мы обсудили, как делать запросы POST и передавать данные в различных форматах. Следует иметь в виду, что cURL не только очень мощный, но и очень гибкий. Он может комбинировать набор параметров в одной команде для создания эффективных запросов. Для получения дополнительной информации я рекомендую документацию cURL, поскольку она хорошо написана.

https://curl.se/docs/

Спасибо за чтение и получайте удовольствие от cURL.