Начало работы с cURL в Windows

Аббревиатура cURL означает «Клиент для URL-адресов» или «Библиотека запросов URL Curl». Это программа командной строки с соответствующей библиотекой для передачи данных между компьютерами в сети. Программа cURL была разработана программистом Даниэлем Стенбергом. Его первоначальной целью было предоставить пользователям программы чата данные о курсах валют, которые были получены с различных веб-сайтов. Благодаря лицензии MIT free-software, cURL может использоваться свободно и нашел свое применение во многих операционных системах — включая Windows 10, которая использует cURL с обновления 1803, опубликованного в апреле 2018 года. «Everything curl» — это очень полное руководство и содержит информацию о том, что этот инструмент может сделать для разработчиков. В следующих разделах вы найдете несколько практических примеров того, что может делать cURL для Windows. Некоторые из них вы можете опробовать прямо сейчас.

Что именно представляет собой cURL для Windows?

Как и в других операционных системах, cURL для Windows состоит из исполняемого файлаcurl.exe и библиотеки libcurl, которая представляет собой API, написанный на языке программирования C и реализующий множество функций cURL. Команды выполняются в окне командной строки Windows (т.е. в командной строке). Для этого существует определенный синтаксис команд:

C:Usersuser>curl [options …] <url>

В данном примере <url> — это адрес сайта, с которым вы хотите взаимодействовать. Параметры [options …] используются для определения инструкций по выполнению таких операций, как запросы страниц, загрузки, выгрузки, посты, работа с формами и многое другое. Многие опции имеют два варианта написания:

  • один со знаком минус и буквами
  • другой — с двумя знаками минус и командным словом.

Например, чтобы использовать метод GET в качестве опции, вы можете сделать это с помощью «-G» или «—get».

Проверка наличия и версии cURL

Сначала проверьте, есть ли в вашей версии Windows cURL и какая именно версия. Для этого откройте окно командной строки, набрав «cmd» в функции поиска Windows. Введите следующее:

C:Usersuser>curl --version

В результате будет получена информация о доступной версии cURL в вашей операционной системе Windows 10.

По мере развития cURL количество используемых протоколов неуклонно росло. Это видно из сравнения в таблице ниже двух извлеченных версий, показанных на изображении выше:

7.55.1 (август 2017 года) 7.70.0 (апрель 2020 года)
dict dict
файл файл
ftp ftp
ftps ftps
суслик
http http
https https
imap imap
imaps imaps
ldap
ldaps
mqtt
pop3 pop3
поп3с поп3с
rtsp
scp
sftp
smb
smbs
smtp smtp
smtps smtps
telnet telnet
tftp tftp

Таким образом, были расширены возможности передачи данных в различных сетях.

Установка текущей версии cURL

Версия cURL, установленная вместе с Windows, хранится в системе в виде пути, доступного как текущему пользователю, так и администратору. Если вы хотите иметь возможность использовать все доступные протоколы cURL, вам необходимо установить текущую версию cURL для Windows. Самый простой способ сделать это — загрузить текущую доступную версию в виде ZIP-файла с сайта разработчика. Там же вы найдете информацию обо всех внесенных изменениях (т.е. журнал изменений). Распакуйте файл в Проводнике файлов в каталог (например, с именем «curl»). Вы также можете поместить этот каталог на жесткий диск вашей системы (например, C:curl). Скопируйте все файлы и каталоги из разархивированного загруженного файла cURL в этот новый каталог. Исполняемый файл curl.exe находится в подкаталогеbin, который также содержит файл сертификата curl-ca-bundle.crt. Этот файл необходим, например, для использования протокола SFTP и HTTPS.

Затем откройте окно командной строки Windows и введите следующее:

 

# Jump up two directory levels 
C:Usersuser>cd..
C:Users>cd..
# Jump to the specified directory
C:cd curlbin
C:curlbin>

Здесь вы можете использовать все доступные функции cURL для Windows, которые используются здесь в дальнейших демонстрациях. Чтобы проверить это, достаточно получить доступ к версии, описанной выше. Описанный здесь метод обновления cURL работает для Windows 7, 8 и 10. Вы также можете интегрировать текущую версию cURL в свою систему. Для этого нужно создать системный путь и найти (!) и деактивировать старую версию.

cURL на практике — с простыми примерами

Чтобы использовать cURL для Windows, введите текстовые команды в окне командной строки. Для быстрого обзора введите следующую команду:

C:curlbin>curl --help

Получить доступ к подробной информации в руководстве можно с помощью следующей команды:

C:curlbin>curl --manual

Вы должны сохранить оба вывода, появившиеся в окне командной строки, скопировав и вставив их в виде TXT-файла в отдельную папку. Это позволит вам легко получить доступ к командам с помощью функции поиска в документе и сохранить окно командной строки свободным.

Совет

Используйте текстовый редактор в Windows. С его помощью вы можете записать команды для cURL, проверить их, а затем скопировать в окно командной строки. Это избавит вас от необходимости многократно (и досадно) перепечатывать команды, когда в них вкрадываются опечатки. Вы также можете использовать его для сохранения собственных наборов команд для будущих действий, например, для работы с информацией для входа в систему.

Это можно сделать еще быстрее следующим образом:

C:curlbin >curl --help | clip

Команда CMD «clip», которой предшествует вертикальная полоса, немедленно копирует текущий вывод в окне командной строки в буфер обмена Windows, так что вам остается только нажать [Ctrl] + [V], чтобы вставить содержимое в пустой документ редактора, а затем сохранить его.

Сохранение информации о сайте локально

Если вам нужно сохранить информацию о сайте в локальном файле, это можно сделать с помощью простой процедуры cURL. Файл, содержащий информацию, должен быть назван infos.html и сохранен на локальном компьютере в той же директории, что и установка cURL. В Windows cURL использует для этой цели опцию «-o» (строчная o, не ноль).

curl -o infos.html https://www.n-tv.de/

Этот запрос генерирует файл размером более 700 килобайт, содержащий конкретное состояние сайта новостного канала N-TV на момент запроса.

Когда вы запросите этот файл из локального хранилища данных в браузере, веб-сайт будет отображен в сохраненном состоянии.

Аналогично происходит и с отдельным файлом с веб-сервера. Файл ref.pdf после загрузки будет переименован вreferences.pdf:

curl -o references.pdf https://mywebsite.tld/ref.pdf
or
curl --output references.pdf https://mywebsite.tld/ref.pdf

Отображение заголовка сайта

Для отображения содержимого заголовка сайта, заключенного в HTML-теги <head>…</head>, используется опция перед запрашиваемым адресом сайта (I = заглавная i):

curl --head https://google.com
# or
curl -I https://google.com

Отображение более подробной информации

Чтобы отобразить еще больше информации в выводе через cURL, вы можете добавить опцию «-v» или «—verbose». Эта опция предоставляет информацию об используемом IPv6-адресе, порте, любых сертификатах и многом другом.

curl -I https://google.com -v
# or
curl --head https://google.com --verbose

Загрузка данных по протоколу SFTP

В этой ситуации команда cURL немного сложнее, поскольку при использовании SFTP необходимо передать на сервер идентификаторы пользователей для входа и проверки. Итак, давайте перейдем к делу:

curl -k sftp://the-example-ftp-server:22 --user user:password -T examplefile.pdf

Вы можете отслеживать ход загрузки в окне командной строки Windows. Загруженный файл теперь должен находиться в корневом каталоге вашего FTP-сервера. Если вы неправильно ввели команду, cURL для Windows ответит следующим коротким сообщением: «curl: (67) Authentication failure». Если вы попытаетесь выполнить эту передачу с помощью более старой версии cURL 7.55.1, она выдаст следующее сообщение: «curl: (1) Протокол «sftp» не поддерживается или отключен в libcurl».

Загрузка по протоколу SFTP и cURL

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

curl -k sftp://the-example-ftp-server:22 --user user:password -o examplefile.pdf
Примечание

cURL превратился в мощный инструмент. Будьте осторожны при использовании cURL на своем собственном сервере. Используя резервное копирование и средства восстановления Windows, вы можете подстраховаться на случай, если что-то пойдет не так.

cURLing прогноза погоды

Запрос местного прогноза погоды таким образом демонстрирует, что можно представить информацию в более привлекательном (и полезном) виде с помощью символов ASCII:

curl http://wttr.in/LOCATION

Это можно сделать для любого места.

cURL и PHP — хорошая пара

Чтобы иметь возможность работать с cURL в практическом повседневном программировании, cURL также доступен в PHP. Проверьте свой веб-сервер с помощью следующего PHP-запроса:

<?php
phpinfo();
?>

Сохраните этот код в виде файла с именем phpinfo.php и переместите его в корневой каталог вашего веб-сервера. Когда вы запросите этот файл в браузере с помощью ´https://mywebsite.tld/phpinfo.php´, вам будет представлена вся информация о возможностях, доступных в вашей версии PHP, включая наличие cURL.

Чтобы запросить веб-сайт с дополнительной информацией, все, что вам нужно — это несколько строк PHP-кода. Здесь приведен пример запроса немецкого сайта Microsoft:

<?php
$site = curl_init(); //initialize the cURL handler

curl_setopt($site, CURLOPT_URL, "https://www.microsoft.com/de-de/"); //place the URL
curl_setopt($site,CURLOPT_RETURNTRANSFER,true); // set the optional parameters
curl_setopt($site,CURLOPT_HEADER, true); // display header; omit with „false“

$result=curl_exec($site); // execute the actual cURL

curl_close($site);

echo $result;
?>

Сохраните этот код в виде файла (например, под именем curlinfo.php) в корневом каталоге вашего веб-сервера.

Поскольку файл содержит только чистый PHP-код, заголовочная информация отображается собственным шрифтом браузера (т.е. неформатированной). Такая процедура является первым шагом к внедрению данных с других веб-сайтов в ваш собственный с помощью PHP и cURL.

PowerShell против командной строки

В Windows 10 появился еще один мощный инструмент разработки: он называется PowerShell. Его можно узнать по буквам «PS» перед путем Windows после открытия через значок Windows щелчком правой кнопки мыши. Windows PowerShell призван заменить командную строку (известную как «Консоль») и предоставляет еще более широкие возможности для управления веб-сайтами и серверами. Однако в PowerShell можно использовать только некоторые команды cURL. Остальные должны быть «переведены».

Переводчик» встроен и включается в PowerShell с помощью команды «Get-Alias» плюс команда cURL.

 

PS C:WINDOWSsystem32> Get-Alias curl
# generates the output
CommandType	Name	Version	Source
-----------	----	-------	------
Alias	curl -> Invoke-WebRequest

Это подскажет вам, какую команду PowerShell можно использовать для cURL веб-сайта:

PS C:WINDOWSsystem32> Invoke-WebRequest https://google.com/

Оцените статью
cdelat.ru
Добавить комментарий