Что такое cURL? cURL — это сокращение от «Client URL». Данная утилита доступна в большинстве систем на основе Unix и часто используется для получения данных по заданному url или передачи и получения файлов по различным протоколам.Команда cURL поддерживает множество протоколов, сред них:
Для работы cURL необходима библиотека libcurl, без нее не будет работать cURL. Если данной библиотеки у вас нет и у вас установлена ОС Ubuntu , то установить ее можно при помощи следующих команд:
$ sudo apt update$ sudo apt install libcurl3
если у вас установлена ОС Windows, то вам надо будет скачать библиотеку с сайта curl.haxx.se/download.html
Основной синтаксис cURL выглядит следующим образом:
curl [OPTIONS] [URL]
Вот параметры, которые мы будем использовать при отправке запросов:
##Проверка версии cURL
$ curl --version
##GET запрос
$ curl www.example.com
##POST запросИногда для тестирования API нужно отправить какие-либо данные, обычно это делают через POST-запрос. Если вы делаете POST-запрос при помощи curl, то можете отправить данные либо в виде списка имя=значение, либо в виде JSON.Запрос в виде списка имя=значение:
$ curl --data "param1=test1¶m2=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 в запросе нужно сохранить файлы 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
Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…
На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…
При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…
Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…
При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…
Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…