Curl как установить: Введение в curl и его установка

Как работать с curl в Windows / Хабр


Curl (client URL) — это инструмент командной строки на основе библиотеки libcurl для передачи данных с сервера и на сервер при помощи различных протоколов, в том числе HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, POP3, POP3S, SMTP и SMTPS. Он очень популярен в сфере автоматизации и скриптов благодаря широкому диапазону функций и поддерживаемых протоколов. В этой статье мы расскажем, как использовать curl в Windows на различных примерах.

▍ Установка в Windows


Во всех современных версиях Windows, начиная с Windows 10 (версия 1803) и Server 2019, исполняемый файл curl поставляется в комплекте, поэтому ручная установка не требуется. Чтобы определить местоположение curl и его версию в системе, можно использовать следующие команды:

where curl
curl --version

Определение местоположения и версии curl в Windows

Команда curl —version также выводит список протоколов и функций, поддерживаемых текущей версией curl. Как видно из показанного выше скриншота, к использованию встроенной утилиты curl всё готово. Если вместо этого отображается сообщение об ошибке, curl может быть недоступен потому, что вы используете более раннюю версию Windows (например, Windows 8.1 или Server 2016). В таком случае вам потребуется установить curl в Windows вручную.

▍ Синтаксис curl


Команда curl использует следующий синтаксис:

curl [options...] [url]


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

Получение справки при помощи команды curl

Для получения подробной справки можно использовать команду curl —help all. Справка разделена на категории, поэтому при помощи curl —help category можно просмотреть все темы.

Ознакомившись с синтаксисом curl, давайте рассмотрим различные способы применения этого инструмента на примерах.

▍ HTTP-запрос GET


При использовании curl с URL и без указания опций запрос по умолчанию использует метод GET протокола HTTP. Попробуйте выполнить такую команду:

curl https://4sysops.com


Приведённая выше команда по сути эквивалентна curl —request GET 4sysops.com, отправляющей запрос GET к 4sysops.com по протоколу HTTPS. Чтобы указать версию протокола HTTP (например, http/2), используйте опцию —http2:

curl --http2 https://4sysops.com


В случае URL, начинающихся с HTTPS, curl сначала пытается установить соединение http/2 и автоматически откатывается к http/1.1, если это не удаётся. Также он поддерживает другие методы, например, HEAD, POST, PUT и DELETE. Для использования этих методов вместе с командой curl нужно указать опцию —request (или -X), за которой следует указание метода. Стоит заметить, что список доступных методов зависит от используемого протокола.

▍ Получение информации об удалённом файле


Если вы администратор, то иногда вам могут быть интересны только заголовки HTTP. Их можно получить при помощи опции —head (или -I). Иногда URL может перенаправлять пользователя в другую точку. В таком случае опция —location (или -L) позволяет curl выполнять перенаправления. Также можно использовать —insecure (или -k), чтобы разрешить незащищённые подключения и избежать ошибок с сертификатом TLS в случае, если целевой URL использует самоподписанный сертификат. Пользуйтесь этой опцией только при абсолютной необходимости. Все эти три опции можно скомбинировать в одну краткую запись, как показано в следующей команде:

curl -kIL 4sysops.com

Опции просмотра заголовков запросов, включения незащищённого соединения и использования перенаправлений

Как можно заметить, такая краткая запись особенно полезна для комбинирования нескольких опций. Приведённая выше команда по сути эквивалентна команде curl —insecure —head —location 4sysops.com.

Опция —head (или -I) также даёт основную информацию об удалённом файле без его скачивания. Как показано на скриншоте ниже, при использовании curl с URL удалённого файла он отображает различные заголовки, дающие информацию об удалённом файле.

curl -IL https://curl.se/windows/dl-7.85.0_5/curl-7.85.0_5-win64-mingw.zip

Использование curl для просмотра основной информации удалённых файлов

Заголовок Content-Length обозначает размер файла (в байтах), Content-Type сообщает о типе медиафайла (например, image/png, text/html), Server обозначает тип серверного приложения (Apache, Gunicorn и так далее), Last-Modified показывает дату последнего изменения файла на сервере, а заголовок Accept-Ranges обозначает поддержку частичных запросов для скачивания от клиента, что по сути определяет возможность продолжения прерванной загрузки.

▍ Скачивание файла


Для скачивания файла и сохранения с тем же именем, что и на сервере, можно использовать curl с опцией —remote-name (или -O). Показанная ниже команда скачивает последнюю версию curl для Windows с официального сайта:

curl -OL https://curl.se/windows/latest.cgi?p=win64-mingw.zip

Скачивание файла с именем по умолчанию и индикатором прогресса

При необходимости для нахождения ресурса добавляется опция -L, разрешающая перенаправления. Если нужно сохранить файл с новым именем, используйте опцию —output (или -o). Кроме того, при использовании команды curl в скрипте может понадобиться отключить индикатор прогресса, что можно сделать при помощи опции —silent (или -s). Эти две опции можно скомбинировать:

curl -sLo curl.zip https://curl.se/windows/latest.cgi?p=win64-mingw.zip

Скачивание файла без индикатора и сохранение под произвольным именем

▍ Продолжение прерванного скачивания


Наличие Accept-Ranges: bytes в заголовке ответа в буквальном смысле обозначает, что сервер поддерживает скачивания с возможностью продолжения. Чтобы продолжить прерванное скачивание, можно использовать опцию —continue-at (или -C), получающую смещение (в байтах). Обычно указывать смещение непросто, поэтому curl предоставляет простой способ продолжения прерванной загрузки:

curl -OLC - https://releases.ubuntu.com/22.04/ubuntu-22.04.1-desktop-amd64.iso

Продолжение прерванного скачивания

Как видно из скриншота, я скачивал iso-файл Ubuntu, но скачивание было прервано. Затем я снова запустил команду curl с опцией -C, и передача продолжилась с того диапазона байтов, на котором была прервана. Знак минус () рядом с -C позволяет curl автоматически определить, как и где продолжить прерванное скачивание.

▍ Аутентификация с Curl


Также Curl поддерживает аутентификацию, что позволяет скачать защищённый файл, предоставив учётные данные при помощи опции —user (or -u), принимающей имя пользователя и пароль в формате username:password. Если не вводить пароль, curl попросит ввести его в режиме no-echo.

curl -u surender -OL https://techtutsonline.com/secretFiles/sample.zip

Скачивание файла с аутентификацией по имени пользователя и паролю

Если вы используете Basic authentication, то необходимо передать имя пользователя и пароль, а значит, воспользоваться защищённым протоколом наподобие HTTPS (вместо HTTP) или FTPS (вместо FTP). Если по каким-то причинам приходится использовать протокол без шифрования, то убедитесь, что вы используете способ аутентификации, не передающий учётные данные в виде простого текста (например, аутентификацию Digest, NTLM или Negotiate).

Также curl поддерживает использование файлов конфигурации .curlrc, _curlrc и .netrc, позволяющих задавать различные опции curl в файле, а затем добавлять файл в команду при помощи опции curl —config (или curl -K), что особенно полезно при написании скриптов.

▍ Выгрузка файла


Опция —upload-file (или -T) позволяет выгружать локальный файл на удалённый сервер. Показанная ниже команда выгружает файл из локальной системы на удалённый веб-сервер по протоколу FTPS:

curl -kT C:\Users\Surender\Downloads\sample1.zip -u testlab\surender ftps://192.168.0.80/awesomewebsite.com/files/

Выгрузка файла на удалённый сервер

Опция -k добавляется для устранения проблем с сертификатами на случай, если веб-сервер использует самоподписанный сертификат. Наклонная черта в конце URL сообщает curl, что конечная точка является папкой. Можно указать несколько имён файлов, например «{sample1.zip,sample2.zip}». Ниже показано, как с помощью одной команды curl можно выгрузить на сервер несколько файлов:

curl -kT sample[1-5].zip -u testlab\surender ftps://192.168.0.80/awesomewebsite.com/files/

Выгрузка нескольких файлов на сервер

▍ Последовательность команд


Как говорилось ранее, curl поддерживает различные методы в зависимости от используемого протокола. Дополнительные команды можно отправлять при помощи —quote (или -Q) для выполнения операции до или после обычной операции curl. Например, можно скачать файл с удалённого сервера по протоколу FTPS и удалить файл с сервера после успешного скачивания. Для этого нужно выполнить следующую команду:

curl -u testlab\surender -kO "ftps://192.168.0.80/awesomewebsite.com/files/sample1.zip" -Q "-DELE sample1.zip"

Удаление файла после успешного скачивания

В показанном выше примере я скачал файл sample1.zip с FTPS-сервера при помощи опции -O. После опции -Q я добавил минус (-) перед командой DELE, что заставляет curl отправить команду DELE sample1.zip сразу после успешного скачивания файла. Аналогично, если вы хотите отправить команду на сервер до выполнения операции curl, используйте плюс (+) вместо минуса.

▍ Изменение user-agent


Информация user-agent сообщает серверу тип клиента, отправляющего запрос. При отправке запроса curl на сервер по умолчанию используется user-agent curl/<version>. Если сервер настроен так, чтобы блокировать запросы curl, можно задать собственный user-agent при помощи опции —user-agent (или -A). Показанная ниже команда отправляет стандартный user-agent Google Chrome:

curl -kIA "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0" https://awesomewebsite.com/files/secretFile.zip

Использование собственного user-agent с командой curl, чтобы избежать блокировки сервером

На показанном выше скриншоте видно, что обычный запрос curl был отклонён веб-сервером (с ответом 403 Forbidden), но при передаче другого user-agent запрос выполняется успешно, возвращая ответ 200 OK.

▍ Отправка куки


По умолчанию запрос curl не отправляет и не сохраняет куки. Для записи куки можно использовать опцию —cookie-jar (или -c), а отправить куки можно опцией —cookie (or -b):

curl -c /path/cookie_file https://awesomewebsite. com/
curl -b /path/cookie_file https://awesomewebsite.com/


Первая команда записывает файл куки, а вторая отправляет куки с запросом curl. Также можно отправить куки в формате ‘name = value’:

curl -b 'session=abcxyz' -b 'loggedin=true' http://echo.hoppscotch.io

Отправка нескольких куки командой curl

Я воспользовался веб-сайтом echo.hoppscotch.io для демонстрации заголовков HTTP-запросов, которые обычно невидимы клиентам, отправляющим запрос. Если вы не хотите пользоваться этим веб-сайтом, то можете применить опцию –verbose (или -v) для отображения запроса в сыром виде (который отображает и заголовки запросов).

▍ Использование прокси-сервера


Если вы пользуетесь прокси-сервером для подключения к интернету, в curl можно указать прокси опцией —proxy (или -x). Если прокси-сервер требует аутентификации, то добавьте —proxy-user (или -U):

curl -x 192. 168.0.250:8088 -U username:password https://awesomewebsite.com/


Прокси-сервер указывается в формате server:port, а пользователь прокси — в формате username:password. Можно не вводить пароль пользователя прокси, тогда curl попросит ввести его в режиме no-echo.

Использование прокси-сервера и аутентификации

▍ Дополнительные заголовки запросов


Иногда вместе с запросом к серверу необходимо отправить дополнительную информацию. В curl это можно сделать при помощи —header (или -H), как показано в следующей команде:

curl -vkIH "x-client-os: Windows 11 Enterprise (x64)" https://awesomewebsite.com

Указание дополнительных заголовков для запроса curl

Можно отправлять любую информацию, недоступную через стандартные заголовки HTTP-запросов. В этом примере я отправил название своей операционной системы. Также я добавил опцию -v для включения verbose-вывода, отображающего дополнительный заголовок, отправляемый вместе с каждым моим запросом curl.

▍ Отправка электронного письма


Так как curl поддерживает протокол SMTP, его можно использовать для отправки электронного письма. Показанная ниже команда позволяет отправить электронное письмо при помощи curl:

curl --insecure --ssl-reqd smtps://mail.yourdomain.com –-mail-from [email protected] –-mail-rcpt [email protected] --user [email protected] --upload-file email_msg.txt

Отправка электронного письма командой curl

Давайте вкратце перечислим использованные здесь опции:

  • Опция —insecure (или -k) используется, чтобы избежать ошибки сертификата SSL. Мы уже применяли её ранее.
  • Опция —ssl-reql используется для апгрейда соединения передачи простого текста до зашифрованного соединения, если оно поддерживается SMTP-сервером. Если вы уверены, что ваш SMTP-сервер поддерживает SSL, то можно использовать непосредственно имя сервера smtps (например, smtps://smtp.yourdomain.com), как показано на скриншоте.
  • Опция —mail-from используется для указания адреса электронной почты отправителя.
  • Опция mail-rcpt указывает адрес электронной почты получателя.
  • Опция —user (или -u) отправляет имя пользователя для аутентификации, оно должно совпадать с адресом mail-from, потому что в противном случае письмо может быть отклонено или помечено как спам.
  • Опция —upload-file (или -T) используется для указания файла, в котором находится отправляемое письмо.


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

Просмотр письма, отправленного с помощью curl

Это всего лишь несколько примеров использования curl — на самом деле их гораздо больше. Я настоятельно рекомендую проверить справку по curl и поэкспериментировать с ней.

А вы используете curl? И если да, то для чего?

Telegram-канал с полезностями и уютный чат

Как установить и использовать Curl в Linux Debian 10

Введение

Наряд с коротким кр…

Please enable JavaScript

Наряд с коротким красным платьем

Curl — это утилита командной строки для передачи данных на удаленный сервер или с него. Он позволяет загружать или загружать данные с использованием протоколов HTTP, HTTPS, SCP, SFTP и FTP.

Если вы пытаетесь загрузить файл с помощью curl и получаете сообщение об ошибке, в котором говорится, что команда curl не найдена, это означает, что пакет curl не установлен в вашей системе Debian.

В этом руководстве объясняется, как установить и использовать команду curl в Debian 10, Buster.

Если вы хотите установить curl на удаленный сервер, читайте дальше, в противном случае, если вы хотите установить curl на свой локальный компьютер, пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

Установка Curl в Debian

Пакет Curl включен в репозитории Debian 10 по умолчанию, чтобы установить его, выполните следующую команду:

sudo apt install curl

Чтобы убедиться, что curl установлен, введите curl в терминал и нажмите Enter:

curl

Команда напечатает следующий вывод:

curl: try 'curl --help' or 'curl --manual' for more information

Установка Curl прошла успешно.

Используйте завиток

При использовании без каких-либо параметров curl печатает исходный код указанного URL-адреса:

curl https://example.com

Чтобы загрузить файл, используйте флаги -o или -O.

Параметр -o в нижнем регистре указывает имя сохраняемого файла:

curl -o nomefile.txt https://esempio.it/path/file.txt

Параметр -O в верхнем регистре сохраняет файл с его исходным именем:

curl -O https://esempio.it/path/file.txt

Еще одной полезной функцией Curl является его способность отображать заголовки HTTP заданного URL-адреса:

curl -I https://www.debian.org/
HTTP/1.1 200 OK
 Date: Fri, 13 Sep 2019 21:42:59 GMT
 Server: Apache
 Content-Location: index.en.html
 Vary: negotiate,accept-language,Accept-Encoding,cookie
 TCN: choice
 X-Content-Type-Options: nosniff
 X-Frame-Options: sameorigin
 Referrer-Policy: no-referrer
 X-Xss-Protection: 1
 Strict-Transport-Security: max-age=15552000
 Last-Modified: Thu, 12 Sep 2019 03:26:37 GMT
 ETag: "38ec-59252b48b7c2e"
 Accept-Ranges: bytes
 Content-Length: 14572
 Cache-Control: max-age=86400
 Expires: Sat, 14 Sep 2019 21:42:59 GMT
 X-Clacks-Overhead: GNU Terry Pratchett
 Content-Type: text/html
 Content-Language: en

С помощью Curl вы также можете загружать файлы с FTP-серверов, защищенных паролем:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp. example.it/file.txt

Подробнее о том, как загружать файлы с помощью curl, читайте в этом руководстве.

Вывод

Curl — универсальный инструмент, позволяющий отправлять и получать данные по сети. Для получения дополнительной информации введите:

man curl

Buy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Установка инструмента командной строки cURL в Windows

    В этом руководстве показано, как получить доступ к Oracle Messaging Cloud
    Обслуживание через интерфейс REST с помощью инструмента командной строки cURL. cURL — это бесплатное открытое программное обеспечение, работающее под различными операционными системами.

    В этом руководстве демонстрируется cURL на 64-разрядной версии Windows.
    операционная система, в которой включен уровень защищенных сокетов (SSL). Аспекты аутентификации обмена сообщениями
    Для облачной службы требуется среда с поддержкой SSL.

    Ваша первая задача — установить соответствующую версию cURL
    для вашей среды с поддержкой SSL.

    Для установки cURL необходимо выполнить упорядоченный ряд шагов.
    в Windows. Необходимо установить две библиотеки, и они должны
    быть установлен до того, как cURL будет работать с SSL. Также они должны быть
    установлен в этом порядке для работы. Не пропускать
    шаг для установки последнего сертификата
    .

      Установить Visual C++ 2008
      Распространяемый пакет.

      Для 64-разрядных систем: распространяемые компоненты Visual C++ 2008
      (x64) с http://www.microsoft.com/en-us/download/details.aspx?id=15336

      Для 32-разрядных систем: Распространяемые файлы Visual C++ 2008
      (x32)

      Установить Visual C++ 2010
      Распространяемый пакет.

      Для 64-разрядных систем: Распространяемые компоненты Visual C++ 2010
      (x64) с http://www.microsoft.com/en-us/download/details.aspx?id=14632

      Для 32-разрядных систем: Распространяемые файлы Visual C++ 2010
      (x32)

      Установите Win(32/64) OpenSSL v1.0.0k Light с http://www.shininglightpro.com/products/Win32OpenSSL.html.

      Для 64-разрядных систем: Win64 OpenSSL v1.0.0k Light

      Для 32-разрядных систем: Win32 OpenSSL v1.0.0k Light

      В браузере перейдите на страницу приветствия cURL по адресу http://curl.haxx.se и
      нажмите Скачать .

      На странице cURL Releases and Downloads щелкните ссылку версии с поддержкой SSL для операционной системы вашего компьютера, загрузите ZIP-файл и установите
      в новую папку на вашем компьютере.

      Веб-сайт cURL предлагает мастер для поиска подходящей версии для вашего
      операционная система компьютера.

      Для этого руководства выбрана 64-разрядная универсальная версия с поддержкой SSL для Windows.

      Установите последние сертификаты ЦС. Не пропускайте этот шаг.

      Загрузите cacert.pem , последнюю копию действующего сертификата CERT.
      файлы с http://curl.haxx.se/docs/caextract.html.

      Скопируйте его в ту же папку, куда вы поместили curl.exe
      и переименовать curl-ca-bundle.crt .

      Запустите curl.exe из командного окна (в Windows нажмите Пуск > Выполнить , а затем введите «cmd» в диалоговом окне «Выполнить»).

      Вы можете ввести curl --help , чтобы просмотреть список команд cURL.

    Установка Curl в среде Windows

    спросил

    Изменено
    2 месяца назад

    Просмотрено
    18 тысяч раз

    Я столкнулся с проблемой при установке curl в среде Windows.

    Я выполнил шаги, указанные в Curl, не распознанный как внутренняя или внешняя команда, исполняемая программа или пакетный файл

    Мы используем curl-7.50.3 , скачанный с веб-сайта curl. Мы переместили необходимые файлы на

    Папка C:/windows/systems32

    • Curl.exe

    • libcurl-4.dll

    • libcurl.dll.a

    Я получаю ту же ошибку, когда файлы libcurl-4-dll не найдены. libcurl-4.dll отсутствует после установки curl в Windows 7

    Ошибка Curl из-за отсутствия файла libcurl-4-dll

    Мы внесли изменения в переменные среды, как это предлагается в разделе Как установить/настроить и использовать cURL в Windows?

    Кроме того, последнюю версию curl, предлагаемую на веб-сайтах,
    похоже, в них нет файлов Curl.exe. Ниже ссылка на скачивание
    все версии curl

    https://curl. haxx.se/download/

    Есть ли что-то, что мы упускаем при установке и настройке Curl в Windows?

    • windows
    • curl
    • dll
    • веб-API-тестирование

    5

    Если вы установили git , эти файлы доступны в каталоге: C:\Program Files\Git\mingw64\bin в Windows. Просто скопируйте все эти ошибки, вызывающие файлы .dll , и вставьте их в каталог C:\Windows\System32 .

    Предупреждение: Не переопределять никакие файлы, если запрашивается замена.

    Надеюсь, это сработает!

    Загрузите файл .exe с https://cygwin.com/install.html для cygwin (большой набор инструментов GNU и Open Source, которые предоставляют функциональные возможности, аналогичные дистрибутиву Linux для Windows).
    Запустите .exe файл.
    После завершения установки нажмите на cygwin, чтобы открыть консоль curl в Windows и работать с командами curl.