Что такое команда cURL и примеры ее использования

Что такое cURL? cURL — это сокращение от «Client URL». Данная утилита доступна в большинстве систем на основе Unix и часто используется для получения данных по заданному url или передачи и получения файлов по различным протоколам.Команда cURL поддерживает множество протоколов, сред них:

  • HTTP и HTTPS
  • FTP и FTPS
  • IMAP и IMAPS
  • POP3 и POP3S
  • SMB и SMBS
  • SFTP
  • SCP
  • TELNET
  • GOPHER
  • LDAP и LDAPS
  • SMTP и SMTPS

Для работы cURL необходима библиотека libcurl, без нее не будет работать cURL. Если данной библиотеки у вас нет и у вас установлена ОС Ubuntu , то установить ее можно при помощи следующих команд:

$ sudo apt update$ sudo apt install libcurl3

если у вас установлена ОС Windows, то вам надо будет скачать библиотеку с сайта curl.haxx.se/download.html

Основной синтаксис cURL выглядит следующим образом:

curl [OPTIONS] [URL]

Вот параметры, которые мы будем использовать при отправке запросов:

  • -X, –request- метод HTTP, который будет использоваться.
  • -i, –include- Включить заголовки ответа.
  • -d, –data- Данные, которые должны быть отправлены.
  • -H, –header- Дополнительный заголовок для отправки.

##Проверка версии cURL

$ curl --version

##GET запрос

$ curl www.example.com

##POST запросИногда для тестирования API нужно отправить какие-либо данные, обычно это делают через POST-запрос. Если вы делаете POST-запрос при помощи curl, то можете отправить данные либо в виде списка имя=значение, либо в виде JSON.Запрос в виде списка имя=значение:

$ curl --data "param1=test1&param2=test2" http://domain.com

Запрос в виде JSON:

curl  -H 'Content-Type: application/json' --data '{"param1":"test1","param2":"test2"}' http://www.domain.com

Параметр —data эквивалентен -d, оба указывают cURL выполнить HTTP POST-запрос.

##Сохраните вывод cURL в файлВывод команды cURL может легко сохранить в файл, добавив опцию -o в команде, как показано ниже

$ curl -o website.html https://domain.ru

##Скачивание файлаКоманды cURL могут загружать файлы из удалённой локации. Есть два способа это сделать:-O сохранит файл в текущем рабочем каталоге с тем же именем, что и у удалённого;-o позволяет указать другое имя файла или местоположение.

Скачать файл и сохранить под оригинальным именем. В этом примере архив filename.tar.gz будет загружен в текущий рабочий каталог.

$ curl -O https://example.com/filename.tar.gz

Скачать файл и сохранить под другим именем:

$ curl -o new_filename.tar.gz https://example.com/filename.tar.gz

Скачать файл надежно через SSH с помощью следующей команды:

$ curl -u user sftp://example.com/path/to/file

Скачать список файловМожно скачать список файлов, для этого надо создать файл url_list.txt, который содержит список всех URL-адресов для загрузки и запустить следующую команду, которая выполнит загрузку всех файлов с этих URL.

$ xargs –n 1 curl -O < url_list.txt

##Доступ к FTP-серверуЧтобы получить доступ к FTP-серверу с помощью cURL, надо использовать следующую команду:

$ curl ftp://ftp.domain.com --user username:password

cURL будет подключаться к FTP-серверу и выведет список всех файлов и каталогов в домашнем каталоге пользователяВы можете скачать файл с помощью FTP:

$ curl ftp://ftp.domain.com/filename.zip --user username:password

и загрузить файл на сервер FTP:

$ curl -T filename.zip ftp://ftp.domain.com/ --user username:password

Можно пропустить имя пользователя и пароль для анонимных FTP-соединений.

##Получение заголовков HTTPЕсли вы хотите посмотреть, какие заголовки отдает сервер, то можно использовать опции -I или -head. Они позволяют получить заголовок без тела документа.

$ curl -I http://example.com

Игнорирование ошибки неправильных или самоподписанных сертификатов

Чтобы он не выдавал ошибку о неверных сертификатах и устанавливал соединение для тестирования, используйте опцию -k или -insecure.

curl -k https://localhost/my_page

Указание типа запроса

Параметры -X или —request позволяют указать тип HTTP-запроса, который используется для сообщения с сервером.

$ curl -X PUT -d 'name=mkyong&email=abc@gmail.com' http://domain.com/user/

если требуется передать JSON данные на сервер, то надо указать заголовок Content-Type: application/json и выполнить следующий запрос:

$ curl -X PUT -H "Content-Type: application/json" -d '{"name":"mkyong","email":"abc@gmail.com"}' http://domain.com/user/

пример запроса с типом DELETE

$ curl -X DELETE http://domain.com/user/

Запрос с cookies

Для того что бы использовать cookies в запросе нужно сохранить файлы cookie в файл, а затем получить к ним доступ, используя команду cat или редактор Vim. Вот пример запроса который сохранит cookie в файл:

$ curl --cookie-jar Mycookies.txt http://domain.com/ /index.html -O

теперь можно использовать данный файл что бы сделать запрос с cookies:

curl --cookie Mycookies.txt http://domain.com/

Использование авторизации

Если ресурс закрыт авторизацией по логину-паролю — вы можете передать пару логин-пароль, используя параметр -u или —user. Если просто передать логин, то curl запросит пароль в командной строке. Используете параметр несколько раз — для авторизации на сервер будет передано только последнее значение.

$ curl -u <user:password> https://domain.com/need_auth
admin

Recent Posts

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

2 недели ago

WinScript — очистка и настройка Windows 11 и 10

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

2 недели ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

2 недели ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

2 недели ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

2 недели ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

2 недели ago