- Утилита командной строки CURL
- Следовать за редиректами
- Сохранить вывод в файл
- Загрузить файл, только если он изменён
- Прохождение аутентификации HTTP
- Получение и отправка cookie
- Получение и отправка заголовков
- Отправка данных методом POST
- Загрузка файлов методом POST
- Работа по протоколу FTP
- Как использовать cUrl В Windows 10
- cUrl в Windows 10
- cUrl В Windows 7, 8 / 8.1
- Использование cUrl
- Введение в curl и его установка
- О curl
- Установка curl
- Установка на MacOS
- Установка на Windows
- Создание тестового вызова API
- curl и Windows
- cURL на Windows
- Установка cURL на Windows
- Скачивание cURL
- 10 команд curl, которые вам следует знать
Утилита командной строки CURL
CURL — утилита командной строки для Linux или Windows, поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах сайтов и других операций с URL адресами. Поддержка CURL добавлена в множество различных языков программирования и платформ.
Для начала скачаем саму утилиту, для этого переходим на официальный сайт утилиты, в раздел Download. После скачивания архива для своей платформы (у меня это Windows 64 bit), распаковываем архив. Чтобы иметь возможность работать с HTTPS и FTPS, устанавливаем сертификат безопасности url-ca-bundle.crt , который находится в папке curl/bin .
Запускаем командную строку, переходим в директорию curl/bin и пытаемся скачать главную страницу Google:
Опция -X позволяет задать тип HTTP-запроса вместо используемого по умолчанию GET. Дополнительные запросы могут быть POST, PUT и DELETE или связанные с WebDAV — PROPFIND, COPY, MOVE и т.п.
Следовать за редиректами
Сервер Google сообщил нам, что страница google.com перемещена (301 Moved Permanently), и теперь надо запрашивать страницу www.google.com . С помощью опции -L укажем CURL следовать редиректам:
Сохранить вывод в файл
Чтобы сохранить вывод в файл, надо использовать опции -o или -O :
- -o ( o нижнего регистра) — результат будет сохранён в файле, заданном в командной строке;
- -O ( O верхнего регистра) — имя файла будет взято из URL и будет использовано для сохранения полученных данных.
Сохраняем страницу Google в файл google.html :
Сохраняем документ gettext.html в файл gettext.html :
Загрузить файл, только если он изменён
Опция -z позволяет получить файлы, только если они были изменены после определённого времени. Это будет работать и для FTP и для HTTP. Например, файл archive.zip будет получен, если он изменялся после 20 августа 2018 года:
Команда ниже загрузит файл archive.zip , если он изменялся до 20 августа 2018 года:
Прохождение аутентификации HTTP
Опция -u позволяет указать данные пользователя (имя и пароль) для прохождения базовой аутентификаци (Basic HTTP Authentication):
Получение и отправка cookie
Cookie используются сайтами для хранения некой информации на стороне пользователя. Сервер сохраняет cookie на стороне клиента (т.е. в браузере), отправляя заголовки:
А браузер, в свою очередь, отправляет полученные cookie обратно на сервер при каждом запросе. Разумеется, тоже в заголовках:
Передать cookie на сервер, как будто они были ранее получены от сервера:
Чтобы сохранить полученные сookie в файл:
Затем можно отправить сохраненные в файле cookie обратно:
Файл cookie.txt имеет вид:
Получение и отправка заголовков
По умолчанию, заголовки ответа сервера не показываются. Но это можно исправить:
Если содержимое страницы не нужно, а интересны только заголовки (будет отправлен HEAD запрос):
Посмотреть, какие заголовки отправляет CURL при запросе, можно с помощью опции -v , которая выводит более подробную информацию:
- Строка, начинающаяся с > означает заголовок, отправленный серверу
- Строка, начинающаяся с означает заголовок, полученный от сервера
- Строка, начинающаяся с * означает дополнительные данные от CURL
А вот так можно отправить свой заголовок:
Отправка данных методом POST
Команда ниже отправляет POST запрос на сервер аналогично тому, как пользователь, заполнив HTML форму, нажал бы кнопку «Отправить». Данные будут отправлены в формате application/x-www-form-urlencoded .
Параметр —data аналогичен —data-ascii , для отправки двоичных данных необходимо использовать параметр —data-binary . Для URL-кодирования полей формы нужно использовать —data-urlencode .
Если значение опции —data начинается с @ , то после него должно быть имя файла с данными (или дефис — тогда будут использованы данные из стандартного ввода). Пример получения данных из файла для отправки POST-запроса:
Содержимое файла data.txt :
Массив $_POST , который будет содержать данные этого запроса:
Пример URL-кодирования данных из файла перед отправкой POST-запроса:
Содержимое файла username.txt :
Массив $_POST , который будет содержать данные этого запроса:
Загрузка файлов методом POST
Для HTTP запроса типа POST существует два варианта передачи полей из HTML форм, а именно, используя алгоритм application/x-www-form-urlencoded и multipart/form-data . Алгоритм первого типа создавался давным-давно, когда в языке HTML еще не предусматривали возможность передачи файлов через HTML формы.
Со временем возникла необходимость через формы отсылать еще и файлы. Тогда консорциум W3C взялся за доработку формата POST запроса, в результате чего появился документ RFC 1867. Форма, которая позволяет пользователю загрузить файл, используя алгоритм multipart/form-data , выглядит примерно так:
Чтобы отправить на сервер данные такой формы:
Скрипт upload.php , который принимает данные формы:
Работа по протоколу FTP
Скачать файл с FTP-сервера:
Если заданный FTP путь является директорией, то по умолчанию будет выведен список файлов в ней:
Как использовать cUrl В Windows 10
cUrl в Windows 10
Если вы хотите использовать cUrl в Windows 10, у вас есть два варианта. Проверьте свою сборку Windows 10, и если у вас есть что-то старше 17063, действуйте следующим образом.
Вам нужно будет скачать cUrl с официального сайта. Версия Windows находится внизу страницы загрузки. Вы хотите загрузить общую версию с застежкой-молнией. Извлеките заархивированный файл и внутри папки bin, вы найдете файл curl.exe. Откройте командную строку в этой папке и запустите любую команду, которую вы хотите.
Так как потребуется много времени, чтобы записывать CD в папку bin каждый раз, когда вы хотите использовать cUrl, рекомендуется добавить путь к вашим переменным среды пути. Это позволит вам запускать cUrl из любого места.
Если ваша сборка Windows 10 — 17063 или более поздняя, cUrl включен по умолчанию. Все, что вам нужно сделать, это запустить командную строку с правами администратора, и вы можете использовать cUrl. Curl.exe находится в C: \ Windows \ System32. Если вы хотите использовать cUrl из любого места, подумайте о его добавлении к переменным среды пути.
cUrl В Windows 7, 8 / 8.1
Использование cUrl
Для старых версий Windows 10 и для Windows 7 и 8 / 8.1 вам нужно сначала cd в папку с cUrl EXE, а затем выполнить команду.
Microsoft предоставляет пользователям множество причин для обновления до Windows 10. В дополнение к добавлению cUrl по умолчанию он также включает в себя Tar сейчас. Tar позволяет создавать архивы и извлекать их, не требуя дополнительных инструментов. Если это недостаточно для обновления, есть и тот факт, что Office 2019 будет работать только на ПК с Windows 10.
Введение в curl и его установка
Хотя Postman удобен, его трудно использовать для представления в документации, как совершать запросы с его помощью. Кроме того, разные пользователи, вероятно, используют разные клиенты с графическим интерфейсом или вообще не используют их (предпочитая командную строку)
Вместо того, чтобы описывать, как выполнять REST-запросы с использованием GUI-клиента, такого как Postman, наиболее традиционный метод документирования синтаксиса запроса — использовать curl.
О curl
curl — это утилита командной строки, которая позволяет выполнять HTTP-запросы с различными параметрами и методами. Вместо того, чтобы переходить к веб-ресурсам в адресной строке браузера, можно использовать командную строку, чтобы получить те же ресурсы, извлеченные в виде текста.
Note: Иногда curl пишется как cURL, что означает Client URL.
curl является более распространенным написанием, так что оба варианта верны.
Установка curl
curl доступен на MacOS по умолчанию, для Windows требуется установка. Ниже представлены инструкции по установке curl.
Установка на MacOS
Проверить установлен ли curl на MacOS можно так:
- Открываем Терминал (нажимаем Cmd + spacebar для открытия Спотлайт и вводим Terminal).
- В терминале пишем curl -V . Ответ должен быть примерно таким:
Если такого ответа нет, то curl необходимо скачать и установить
Установка на Windows
Установка curl в Windows включает другие шаги. Сначала определяем версию windows: 32-разрядная или 64-разрядная версия Windows, щелкнув правой кнопкой мыши Компьютер и выбрав Свойства . Затем следуем инструкциям на этой странице. Нужно выбрать одну из бесплатных версий с правами Администратора.
После установки проверяем версию установленной curl;
- Открываем командную строку нажав кнопку Пуск и введя cmd
- В строке пишем curl -V
Ответ должен быть примерно таким:
Создание тестового вызова API
После установки curl делаем тестовый вызов API
В ответ должен вернуться минимизированный JSON:
curl и Windows
Если вы используете Windows, обратите внимание на следующие требования к форматированию при использовании curl:
- Используйте двойные кавычки в командной строке Windows. (Windows не поддерживает одинарные кавычки.);
- Не используйте обратную косую черту \ для разделения строк. (Это только для удобства чтения и не влияет на вызов на Mac.)
- Добавив -k в команду curl, вы можете обойти сертификат безопасности curl, который может быть необходимым.
cURL на Windows
Для программирования с использованием языка HTML рекомендуется иметь как можно более широкий набор инструментов. Один из них – cURL. Он позволяет проводить операции в командной строке с различными адресами формата URL. Но единственный недостаток – возможности реализовать это в Windows после установки самой системы нельзя.
Возможно, у вас уже есть cURL, но это в том случае, если вы – пользователь macOS, ведь это ПО интегрировано в систему и не требует дополнительной установки. Однако, все равно возникает вопрос по поводу добавления возможности работы с URL. «Как установить и использовать cURL на Windows?» — ответ на это можно получить, прочитав данную статью до конца.
Есть 2 типа размещения в системе нового компонента. Для опытных подойдет установка cURL вручную, с указанием всех параметров самостоятельно. Однако, есть и те, кому не хочется заморачиваться насчет этого или нет опыта в установке плагинов для командной строки. Таким людям нужна установка cURL с помощью диспетчера пакетов – упрощенный вариант.
Задевая тему новичков, стоит также отметить, что доступно просмотреть несколько вариантов того, где и как возможно реализовать свои затеи в командной строке. То есть, есть несколько примеров использования команд cURL в режиме реального времени. Для этого посвящены различные видеоролики в сети, где будет все четко описано.
Установка cURL на Windows
Если пользователь имеет последнюю версию ОС, то этот пункт можно пропустить. Достаточно лишь прописать команду «curl -help», и, если ошибок нет, то будут выведены на рабочее поле все возможности команды. То есть, установка cURL на Windows 10 просто не нужна – это ПО поставляется вместе с самой ОС. Таким образом, останется лишь вопрос насчет того, как происходит использование cURL.
В случае, когда установлена Windows 8, 7 и более ранняя версия – здесь уже требуется вмешательство пользователя. Первое и самое легкое – переход на сайт с программным обеспечением, где нужно лишь нажать на кнопку «Download cURL». Проделав далее некоторые действия для установки, кажется, что можно приступать к работе. Однако, это не так.
Последнее действие, которое необходимо сделать – объявить переменную среды для cURL. Без CD в папке bin ничего работать не будет. А потому, следует перейти по следующим «ссылкам» к разделам в Панели управления. То есть, сначала пользователь заходит в раздел «System», далее – «Advanced system settings», во вкладку «Advanced» и нажать на «Environment Variables». Остается лишь сделать задуманное – добавить путь к папке bin. После этого, можно пользоваться cURL.
Скачивание cURL
Чтобы пользоваться ПО в командной строке, загрузите и установите программу cURL с официального сайта. Делается это максимально просто, ведь скачивание cURL такое же, как и в случае с другими программами. Таким образом, загрузив версию cURL для Windows, останется сделать всего лишь ничего. То есть, пользователю нужно будет только провести операции по пункту «извлечение и настройка cURL», которая не составит труда.
10 команд curl, которые вам следует знать
Команда Mail.ru Cloud Solutions перевела статью, автор которой составил краткий справочник часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.
cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.
curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.
Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.
- доступ без браузера;
- внутри shell-скриптов;
- для тестирования API.
В основном я использовал curl для тестирования API, иногда просто вставляя команды, которые нашел в интернете. Но я хочу разобраться в curl и лучше понять его особенности. Так что поделюсь некоторыми командами, с которыми столкнулся во время работы.
Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.