Содержание

⚙КАК ИСПОЛЬЗОВАТЬ И ПРИМЕРЫ КОМАНДЫ CURL LINUX

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

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

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

Именно по этой причине сегодня в этом уроке Solvetic объяснит, как мы можем использовать cURL в Linux для всестороннего пошагового выполнения задач загрузки.

Что такое CURL?

cURL был разработан как инструмент командной строки и библиотеки, целью которого является передача данных через URL.

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 поддерживает SSL, HTTP POST, сертификаты HTTP PUT, загрузки по FTP, загрузки по HTTP, прокси, HTTP / 2, файлы cookie, аутентификацию и пароль пользователя (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate и Kerberos. ), передача файлов, прокси туннелирование и многое другое.

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

Особенности CURL

  • Поддерживает куки, формы и SSL.
  • Совместим с конфигурационными файлами.
  • Это позволяет многократную загрузку одной командой.
  • Индикатор выполнения, ограничение скорости и встроенное время загрузки

Далее мы увидим, как использовать cURL в Linux и, таким образом, иметь практическую утилиту для загрузки сетевых элементов.

1. Как просмотреть версию cURL в Linux
Используя параметры -V или — -version, мы получим доступ как к версии curl, так и к протоколам и функциям, поддерживаемым в этой версии:
 завиток-версия 

2. Как скачать простой файл с помощью cURL в Linux
Будет возможно получить контент из URL и отобразить его вывод в STDOUT с помощью cURL следующим образом:
 локон http://www.centos.org 
Мы также можем использовать curl с опциями -O и -o, при первой опции файл будет сохранен в текущем рабочем каталоге с тем же именем, что и в удаленном местоположении, а со вторым параметром можно указать имя файла. и / или другое место:

Сохраните файл как .tar.gz

 curl -O http://domain.com/archive.tar.gz # 

Сохранить как file.tar.gz

 curl -o file.tar.gz http://domain.com/file.tar.gz # 

3. Как просмотреть заголовки HTTP-запросов в Linux cURL
Заголовки HTTP позволяют удаленному веб-серверу выполнять процесс отправки дополнительной информации о себе вместе с фактическим запросом, который используется для предоставления клиенту подробной информации о том, как обрабатывается текущий запрос.

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

 завиток-я www.solvetic.com 

4. Как хранить куки сайта с помощью cURL Linux
С помощью команды cURL можно загрузить файлы cookie с веб-сайта, а затем просмотреть их, для этого мы будем использовать следующую команду, чтобы сохранить их в файле .txt. и тогда можно будет использовать команду cat, чтобы увидеть сгенерированный файл:
 curl --cookie-jar solveticcookies. txt https://www.solvetic.com/index.html -O cat solveticcookies.txt 

5. Как ограничить скорость загрузки с cURL Linux
Чтобы предотвратить неправильное использование полосы пропускания cURL, можно ограничить скорость загрузки требуемой скоростью, а также следующий пример:
 curl - предельная ставка 1K http://domain.com/archive.tar.gz -O 
В этом случае он ограничен 1 килобайтом.

6. Как отслеживать расположение заголовков HTTP с помощью cURL Linux
По умолчанию cURL не следует заголовкам HTTP-местоположения посещаемых сайтов, поэтому, когда запрашиваемая веб-страница перемещается в другое место, в ответ отправляется заголовок HTTP-местоположения и получается местоположение, где расположена веб-страница. реально, для этого мы выполним:
 локон http://www.solvetic.com 
Внизу мы видим, что этот заголовок был перемещен.

7. Как составить список или скачать, используя диапазоны с Linux cURL
Командная утилита cURL поддерживает диапазоны, размещенные в URL, с этими диапазонами будут загружаться файлы, совпадающие с этим диапазоном, это полезно для загрузки пакетов с сайтов реплики FTP, например:
 curl ftp://ftp. uk.debian.org/debian/pool/main/[az[/ 

8. Получите больше информации о сайте с помощью команды Linux cURL
При использовании параметра -v в команде cURL включается подробный режим, который полностью распечатывает детали сайта:
 curl -v http://www.solvetic.com 

9. Другие действия с командой cURL в Linux

Как возобновить медленную загрузку с помощью curl в Linux

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

 curl -C - -O http://domain.com/archive.tar.gz 

Загружайте различные файлы с помощью cURL в Linux

Можно будет загружать элементы с разных сайтов, используя следующий синтаксис:

 curl -O http://site.com/1.html -O http://site.com/2.html 

Используйте прокси с или без аутентификации в Linux curl

В случае использования прокси-сервера, который прослушивает порт 8080 в нашем домене, мы должны использовать следующий синтаксис для использования curl:

 curl -x proxy. domain.com:8080 -U пользователь: пароль -O http://domain.com/yourfile.tar.gz 

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

 curl -u имя пользователя: пароль -O ftp: //serverFTP/file.tar.gz 

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

 curl -u имя пользователя: пароль -T file.tar.gz ftp: // serverFTP 

Как отправить куки с сайта с Linux curl
Можно будет использовать файлы cookie, сохраненные для последующих запросов к тому же сайту, для этого мы выполняем следующее:

 curl --cookie solveticcookies.txt https://www.solvetic.com 

Как загрузить файл, если он был изменен только в диапазоне дат с помощью Linux cURL

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

 curl -z 25 августа-17 http://www.
site.com/yy.html

Таким образом, команда cURL дает нам ряд полезных опций для всего, что связано с загрузкой и управлением элементами в сети.

Как использовать cUrl В Windows 10 — TECHNODOR

cUrl — это инструмент командной строки, который пользователи Linux более чем знакомы. Если вы когда-то использовали Linux и с тех пор перешли на Windows, или если вы используете как Linux, но и Windows-машину, вы, вероятно, пропустите этот маленький инструмент, но нет причин. Вы можете использовать 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


В Windows 7 и 8 / 8.1 будет применяться тот же процесс, что и для Windows 10 старше старше 17063 года. Вам необходимо загрузить cUrl с официального сайта, связанного в предыдущем разделе, и запустить его. Чтобы упростить его использование, вы можете добавить его в переменные среды пути.


Использование cUrl


Если вы добавили переменные cUrl EXE в переменные окружения, вы можете запустить команду cUrl из любой точки командной строки. Если вы не добавили его в переменные среды пути, вам нужно сначала открыть командную строку с правами администратора (Windows 10, сборка 1706 и более поздние), а затем запустить команду.


Для старых версий Windows 10 и для Windows 7 и 8 / 8.1 вам нужно сначала cd в папку с cUrl EXE, а затем выполнить команду.

Microsoft предоставляет пользователям множество причин для обновления до Windows 10. В дополнение к добавлению cUrl по умолчанию он также включает в себя Tar сейчас. Tar позволяет создавать архивы и извлекать их, не требуя дополнительных инструментов. Если это недостаточно для обновления, есть и тот факт, что Office 2019 будет работать только на ПК с Windows 10.

Как установить и использовать curl на Windows?



У меня возникли проблемы с тем, чтобы заставить curl работать на Windows.

Я скачал отсюда файл curl zip , но он, похоже, содержит исходный код, а не исполняемый файл.

Нужно ли мне компилировать curl, чтобы запустить его? Если да, то как мне это сделать?

Где я могу найти .exe загрузок для curl?

Я искал документацию по установке curl, но там мало что можно найти.

windows curl installation
Поделиться Источник pri_dev     29 февраля 2012 в 22:00

1 ответ




957

Вполне возможно, что вам не нужно будет ничего скачивать:

  • Если вы находитесь на Windows 10, версии 1803 или более поздней, ваш OS поставляется с копией curl, уже настроенной и готовой к использованию.

  • Если у вас установлен Git для Windows (если вы скачали Git с git-scm.com, то ответ «да»), то у вас есть

    curl.exe под:

     C:\Program Files\Git\mingw64\bin\
    

    Просто добавьте приведенный выше путь к PATH .

Если вы уже используете менеджер пакетов, возможно, будет удобнее установить его с помощью одного из них:

Загрузка curl

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

curl-7.62.0.tar.gz в его теле , вы скачаете исходный пакет curl, который содержит исходный код curl, но не curl.exe . Берегись этого.

Вместо этого нажмите на большие и заметные ссылки для скачивания на этой странице . Это официальные сборки Windows, и они предоставляются проектом curl-for-win.

Если у вас есть более эзотерические потребности (например, если вам нужны cygwin сборки, сторонние сборки, libcurl, заголовочные файлы, исходники и т. д.), Используйте мастер загрузки curl . После ответа на пять вопросов вам будет представлен список ссылок для скачивания.

Извлечение и настройка curl

Найдите curl.exe в загруженном пакете; вероятно, он находится под bin\ .

Выберите место на вашем жестком диске, которое будет служить постоянным домом для curl:

  • Если вы хотите дать curl свою собственную папку, то C:\Program Files\curl\ или C:\curl\ подойдет.
  • Если у вас много свободных исполняемых файлов и вы не хотите добавлять много отдельных папок в PATH , используйте для этой цели одну папку, такую как C:\Program Files\tools\ или C:\tools\ .

Поместите curl.exe под папку. И никогда не перемещайте папку или ее содержимое.

Затем вы захотите сделать curl доступным в любом месте командной строки. Для этого добавьте папку в PATH, например:

  1. Нажмите кнопку Пуск Windows 10. Начните вводить «environment».
  2. Вы увидите результат поиска, отредактируйте системные переменные среды . Выбирай.
  3. Появится окно свойств системы. Нажмите кнопку Переменные среды внизу.
  4. Выберите переменную «Path» в поле «System variables» (нижнее поле). Нажмите кнопку Изменить .
  5. Нажмите кнопку Добавить и вставьте путь к папке, в которой находится curl.exe .
  6. Нажмите кнопку OK по мере необходимости. Закройте открытую консоль windows и снова откройте, чтобы они получили новую PATH .

Теперь наслаждайтесь вводом curl в любой командной строке. Время вечеринки!

Поделиться Michiel van Oosterhout     25 апреля 2013 в 14:01



251

Предполагая , что вы получили его из https://curl.haxx.se/download.html, просто распакуйте его туда, куда хотите. Нет необходимости устанавливать. Если вы собираетесь использовать SSL, вам нужно скачать OpenSSL DLLs, доступный с веб-сайта curl.

Поделиться theglauber     29 февраля 2012 в 22:02



104

  1. Скачать curl zip
  2. Извлеките содержимое (если вы скачали правильную версию, вы должны найти curl.exe)
  3. Поместите curl.exe в папку, где вы храните свое программное обеспечение (например, D:\software\curl\curl.exe)
  4. Чтобы запустить curl из командной строки

    а) Right-hand-click на значке «My Computer»

    б) выберите Свойства

    c) нажмите на ссылку «Дополнительные настройки системы»

    d) перейдите на вкладку [Дополнительно] — кнопка ‘Environment Variables’

    e) в разделе системная переменная выберите ‘Path’ и нажмите кнопку Изменить

    Е) добавьте точку с запятой, за которой следует путь к тому месту, где вы разместили свой curl.exe (например, D:\software\curl)

Теперь вы можете запустить его из командной строки, набрав:

curl www. google.com

Поделиться Ithar     25 декабря 2013 в 13:20


  • Как установить cURL в Windows XP?

    Я скачал cURL для Windows, и когда я нажимаю .exe файл, он не работает. Я не знаю, как установить, может ли кто-нибудь дать мне решение.

  • Как установить curl на windows для ruby на rails

    Я новичок в ruby на rails. Не могли бы вы помочь мне установить curl. У меня есть windows 7 и ruby 1.8.7 Мне нужно установить FeedZirra пола Дикса. Для этого мне нужно curl. Также не могли бы вы помочь мне с установкой бордюра gem. Даже бордюр, кажется, нуждается в Curl С нетерпением ждем вашей…


Поделиться Abel Callejo     29 сентября 2013 в 18:48



27

  1. Скачать cURL (Win64 ia64 zip binary with SSL)
  2. Извлеките curl. exe в » C:\Windows\System32 »
  3. Сделано

Еще проще:

Загрузите установщик Win64 2000/XP x86_64 MSI, предоставленный Edward LoPinto.

На момент написания статьи файл curl-7.46.0-win64.exe был самым последним. Проверено с помощью Windows 10.

Поделиться Benny Neugebauer     28 января 2016 в 13:10



27

Начиная с Windows 10 версии 1803 (и ранее, с insider build 17063), вы больше не устанавливаете curl . Windows включает в себя родной curl.exetar.exe ) в C:\Windows\System32\ , к которому вы можете получить доступ прямо из вашего обычного CMD .

C:\Users\vonc>C:\Windows\System32\curl.exe --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: [unreleased]
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

C:\Users\vonc>C:\Windows\System32\tar. exe --version
bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f-ipp

См. первоначальное объявление и объявление о выпуске.

Поделиться VonC     06 мая 2018 в 14:34



18

Вероятно, стоит отметить, что Powershell v3 и выше содержит командлет Invoke-WebRequest, который имеет некоторые возможности curl-ish. Новые -WebServiceProxy и Invoke-RestMethod cmdlets, вероятно, тоже заслуживают упоминания.

Я не уверен, что они будут соответствовать вашим потребностям или нет, но хотя я не парень Windows, я должен сказать, что нахожу объектный подход PS намного проще в работе, чем утилиты, такие как curl, wget и т. д. Возможно, на них стоит взглянуть

Поделиться user2233949     22 марта 2015 в 21:52



12

Обратите внимание также, что установка Git для Windows из git-scm. com также устанавливает Curl. Затем вы можете запустить Curl из Git для Windows’ BASH terminal (не по умолчанию Windows CMD terminal).

Поделиться RBV     01 мая 2017 в 14:17



11

Как вы уже знаете, вы можете найти несколько пакетов двоичных файлов на официальном сайте curl.

Как только вы скачаете пакет, распакуйте его в любом месте. Я рекомендую добавить его местоположение в свой путь, чтобы вы могли вызвать curl из пакетных или powershell скриптов. Чтобы добавить каталог в свой путь, введите «environment variables» в меню Пуск и выберите «edit user environment variables». Выберите путь и добавьте в конец поля «value»: ;C:\curl\directory (с каталогом, измененным на тот, где вы сохранили curl.)

Если вы хотите использовать SSL, вам нужен сертификат bundle. Выполните либо mk-ca-bundle.pl (perl), либо mk-ca-bundle.vbs (VBScript). Некоторые пакеты двоичных файлов включают в себя один или оба из них. Если ваша загрузка не включает его, загрузите его здесь: https://github.com/bagder/curl/tree/master/lib . Я рекомендую mk-ca-bundle.vbs, так как на windows вы просто дважды щелкните его, чтобы запустить. Он создаст файл с именем ca-bundle.crt. Переименуйте его в curl-ca-bundle.crt и сохраните в каталоге с curl.exe.

Кроме того, недавно я разработал установщик msi, который настраивает полнофункциональную сборку curl всего несколькими щелчками мыши. Он автоматически добавляет curl к вашему пути, включает сертификат ready-to-use ssl bundle и делает руководство и документацию curl доступными из меню «Пуск». Вы можете скачать его по адресу www.confusedbycode.com/curl/ .

Поделиться ConfusedByCode     18 ноября 2013 в 05:27



11

Установите Chocolatey package manager для Windows. После установки просто введите choco install curl . Тогда вы можете использовать curl из terminal.

Поделиться Adam     12 января 2018 в 02:21



7

Вы можете создать последнюю версию curl, openssl, libssh3 и zlib в 3 простых шага, следуя этому руководству.

Curl построен статически, поэтому вам не нужно распространять обязательную динамическую среду выполнения.

Вы также можете скачать готовую версию (x86 и x64)с SourceForge.

Поделиться Peter Rekdal Sunde     10 июня 2013 в 10:55



7

У меня было много проблем с curl для Windows. В конце концов я использовал Cygwin, который по умолчанию включает в себя curl.

Поделиться cprcrack     17 октября 2014 в 00:04



7

Думал, что напишу именно то, что сделал (Windows 10, 64-bit):

На странице загрузки https: / / curl. haxx.se / download. html выберите мастер загрузки https: / / curl.haxx.se/dlwiz/

Выберите curl исполняемый файл.

Выберите Win64.

Выберите универсальный.

Выбирай любую.

Выберите x86_64.

Выберите первый рекомендуемый вариант. Для меня это было:

Версия curl: 7.53.1 — SSL включена SSH включен. Предоставлено: Виктор Шакатс. Этот пакет является исполняемым файлом типа curl вы получите предварительно построенный двоичный файл ‘curl’ по этой ссылке (или в некоторых случаях, используя информацию, предоставленную на странице, которую ведет эта ссылка). Вы можете установить или не установить ‘libcurl’ как общий library/DLL. Файл упакован с помощью 7zip. 7zip-это формат архивирования файлов.

Нажмите кнопку Загрузить.

У вас должен быть файл curl-7.53.1-win64-mingw.7z в папке Загрузки.

Установите 7-Zip, если у вас его нет.

Щелкните правой кнопкой мыши, 7-Zip, извлечь здесь. Скопируйте и вставьте извлеченный файл где-нибудь вроде Z:\Tools\

Если вы посмотрите в папку bin, то увидите curl. exe. Если вы дважды щелкните по нему, окно быстро flash вверх и исчезнет. Чтобы запустить его, вам нужно использовать командную строку. Перейдите в папку bin и введите curl, а затем ваши параметры, чтобы сделать запрос. Вы должны использовать двойные кавычки . Одинарные кавычки не будут работать с curl на Windows.

Теперь вы захотите добавить curl в переменную пути пользователя, чтобы вам не нужно было переходить в нужную папку для запуска программы. Перейдите к этому PC, Компьютер, Свойства системы, дополнительные настройки системы, аутентификация от имени администратора (вы не работаете от имени администратора, верно? Верно?) Переменные среды системные переменные, посмотрите на список и выберите путь, потом редактировать, потом Новый, потом, например

Z:\Tools\curl-7.53.1-win64-mingw\bin

Вы можете добавить обратную косую черту trailing, если хотите, я не думаю, что это имеет значение. Нажмите кнопку Переместить вверх, пока он не окажется в верхней части списка, тогда вы сможете легко увидеть его с предыдущего экрана. Нажмите OK, OK, OK, затем откройте Командную строку, и вы можете запустить curl, набрав curl из любой папки, как любой пользователь. Не забудь про двойные кавычки.

Вот такой ответ я хотел бы получить.

Поделиться nmit026     24 марта 2017 в 00:42



6

Я искал процесс загрузки Curl и каждый раз, когда они говорили, что копируют файл curl.exe в System32 , но они не предоставили прямой ссылки. так что вот оно наслаждайтесь, найдите curl.exe легко в папке bin просто

распакуйте его, а затем перейдите в папку bin, где вы получите файл exe

ссылка на скачивание curl универсальный

Поделиться Pre_hacker     23 июня 2016 в 07:37



5

Этот установщик облегчил мне задачу http://www. confusedbycode.com/curl/

Ссылка описывает, как его использовать. Вот краткое изложение взятое с сайта выше:

«Вы можете установить cURL для Windows всего несколькими щелчками мыши. Просто скачайте и запустите установщик из приведенной ниже таблицы и нажмите кнопку Установить. Установка по умолчанию включает в себя:

  1. curl.exe
  2. сертификат SSL bundle (ca-cert-bundle.crt)
  3. SSL сертификат bundle сценарии генерации (mk-ca-bundle.pl & mk-ca-bundle.vbs)
  4. HTML руководства для cURL и libcurl
  5. текстовая документация отформатирована для Windows (так что вы можете просто дважды щелкнуть файлы, чтобы прочитать их с помощью блокнота)
  6. Папка меню пуск с ярлыками для папки установки cURL, руководств, документации и деинсталлятора
  7. cURL добавлен в ваш путь, так что вы можете использовать его с пакетными или PowerShell скриптами и вызывать его из командной строки в любом рабочем каталоге

Чтобы включить файлы разработчиков в установку, нажмите кнопку Дополнительно. Файлы разработчиков включают в себя libcurl.dll, libeay32.dll, ssleay32.dll, libssh3.dll, zlib.dll, msvcr120.dll, C заголовки, библиотеки и примеры кода.

При нажатии кнопки дополнительно вы также можете выбрать, устанавливать ли документацию и руководства, а также добавлять ли cURL в свой путь.

Если у вас нет прав администратора на вашем компьютере, используйте один из файлов из строки «Without Administrator Privileges». Они устанавливают cURL в C:\Users\Name\AppData\Local\Apps.

Если вы не хотите использовать установщик, но все же хотите получить содержимое, перечисленное выше, вы можете скачать один из архивов zip.»

Поделиться Aussie Ash     25 июля 2016 в 11:59



3

После добавления curl.exe ‘s path к системной переменной’ Path

вы можете открыть командную строку и запустить ‘curl-V‘, чтобы проверить, работает ли она.

Поделиться Shreyas     10 марта 2016 в 23:47



3

Просто скачайте curl и извлеките сжатый файл. Вы получите файл «curl.exe». Откройте CMD Shell, перетащите файл curl.exe в CMD Shell, теперь вы можете использовать curl.

Поделиться Black     15 декабря 2015 в 10:31



3

Следуйте инструкциям мастера загрузки

Следуйте указаниям на экране по одной, выберите тип пакета ( исполняемый curl ), OS ( х64 ), ароматизатор ( общая) CPU ( x86_64 ) и ссылку на скачивание.

распакуйте загрузку и найдите curl.exe (я нашел его в папке src, можно найти его в папке bin для разных OS/flavor)

Чтобы сделать его доступным из командной строки, добавьте исполняемый путь к системному пути ( добавление каталога в переменную окружения PATH в Windows ).

Наслаждайтесь curl.

Поделиться brajesh jaishwal     16 марта 2018 в 07:22



1

Статически построенный WITH ssl для windows:

http://sourceforge.net/projects/curlforwindows/files/? source=navbar

Вам нужно curl-7.35.0-openssl-libssh3-zlib-x64.7z

.а для ssl все, что вам нужно сделать, это добавить «-k» в дополнение к любому другому из ваших параметров, и проблема bundle BS исчезнет; никакой проверки CA.

Поделиться Beeb     13 декабря 2014 в 18:55


Поделиться Kirill Ch     03 августа 2017 в 12:02



1

  • Скачать curl для windows можно по пути: https://curl.haxx.se/windows/
  • Распакуйте архив, и вы найдете . .\bin\curl.exe
  • Добавьте …\bin\ в переменную path для легкого глобального доступа

Поделиться Vikash     21 января 2019 в 06:57


Похожие вопросы:


Как установить PHP/CURL?

Я попытался перейти на сайт PHP.net curl и даже по этой ссылке: http:/ / curl.phptrack.com / forum/viewtopic. php?t=52 и попытаться установить CURL в моем ноутбуке window. Он не работает.. CURL не…


Как установить cURL на Windows?

Я следовал всем инструкциям здесь: http://www.tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows / чтобы установить & config apache получите пакеты PHP5 и получите пакеты CURL. Я…


Как я могу установить curl на Windows для использования с C

Мне нужно установить curl на Windows, чтобы использовать его в приложении C, я использую MinGW. Буду признателен за подробные инструкции.


Установите PHP Curl на Windows и используйте его на Laravel 5.4

Я использую Laravel 5.4 на Windows 10. Как установить PHP Curl на Windows и использовать его на Laravel?


Как установить cURL в 32-битный Windows?

Как установить cURL в 32-битный Windows? Когда я следую за тобой Запуск команд cURL из консоли Windows я получаю эту проблему:


Как установить cURL в Windows XP?

Я скачал cURL для Windows, и когда я нажимаю .exe файл, он не работает. Я не знаю, как установить, может ли кто-нибудь дать мне решение.


Как установить curl на windows для ruby на rails

Я новичок в ruby на rails. Не могли бы вы помочь мне установить curl. У меня есть windows 7 и ruby 1.8.7 Мне нужно установить FeedZirra пола Дикса. Для этого мне нужно curl. Также не могли бы вы…


Установите php cURL на Windows Phpstorm

Как установить расширение php curl на Windows для Phpstorm IDE? Я хотел бы иметь возможность запускать функции curl php на моей локальной машине Windows 10. extension=php_curl.dll в файле php.ini…


Curl на Windows

Я перешел по этой ссылке : Как установить/настроить и использовать cURL на Windows? Но я не смог установить последнюю версию curl 7.50.3 из https://curl.haxx.se/download.html . on windows 7 / 2008…


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

Я столкнулся с проблемой при установке curl в среде windows. Я следовал шагам, упомянутым в Curl, не распознанным как внутренняя или внешняя команда, действующая программа или batch file Мы…

Как выполнить curl | Все о компьютерной технике

Что такое Curl? Curl — это сокращение от “Client URL”. Утилита доступна в большинстве систем на основе Unix и предназначена для проверки подключения к URL-адресам. Кроме того команда Curl — отличный инструмент передачи данных. Давайте же узнаем, как ею пользоваться.

Команда Curl поддерживает следующий список протоколов:

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

Это наиболее важные поддерживаемые протоколы, но есть и другие. Curl работает на libcurl, которая является бесплатной библиотекой для передачи URL на стороне клиента.

  • Проверка Версии Curl
  • Основной Синтаксис Команды Curl
  • Команда Curl для Работы с Файлами
  • Команды Curl для HTTP
  • Команда Curl и Cookies
  • Curl и FTP
  • Ограничение Скорости Скачивания
  • Выводы

Проверка Версии Curl

Прежде чем мы начнём работать с Curl, нам нужно войти в наш VPS. Если вам нужна помощь, ознакомьтесь с этим руководством по SSH.

Сначала давайте проверим её доступною версию, с помощью следующей команды:

В выводе вы должны увидеть версию и список поддерживаемых протоколов. Теперь мы можем взглянуть на некоторые примеры команд Curl.

Основной Синтаксис Команды Curl

Итак, давайте узнаем, как пользоваться утилитой. Основной синтаксис Curl выглядит следующим образом:

Самый простой пример использования Curl — для отображения содержимого страницы. Приведённая ниже команда отобразит домашнюю страницу testdomain. com .

Эта команда отобразит полный исходный код домашней страницы домена. Если протокол не указан, Curl интерпретирует его как HTTP.

Команда Curl для Работы с Файлами

Команды Curl могут загружать файлы из удалённой локации. Есть два способа это сделать:

  • -O сохранит файл в текущем рабочем каталоге с тем же именем, что и у удалённого;
  • -o позволяет указать другое имя файла или местоположение.

Приведённая выше команда сохранит файл как testfile.tar.gz .

А эта команда сохранит его как newtestfile.tar.gz .

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

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

Если вы хотите загрузить несколько файлов с нескольких URL, перечислите их все в файле. Команды Curl могут быть объединены с xargs для загрузки различных URL-адресов.

Например, если у нас есть файл allUrls. txt , который содержит список всех URL-адресов для загрузки, то приведённый ниже пример выполнит загрузку всех файлов с этих URL.

Команды Curl для HTTP

Curl также можно использовать c прокси-сервером. Если вы находитесь за прокси-сервером, прослушивающим порт 8090 на sampleproxy.com, загрузите файлы, как показано ниже:

В приведённом выше примере вы можете выбросить -U username:password , если прокси-сервер не требует метода аутентификации.

Типичный HTTP-запрос всегда содержит заголовок. Заголовок HTTP отправляет дополнительную информацию об удалённом веб-сервере вместе с фактическим запросом. С помощью инструментов разработчика в браузере вы можете посмотреть сведения о заголовке, а проверить их можно с помощью команды curl.

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

Используя curl, вы можете сделать запрос GET и POST . Запрос GET будет выглядеть следующим образом:

А вот пример запроса POST :

Здесь text=Hello — это параметр запроса POST. Такое поведение похоже на HTML-формы.

Вы также можете указать несколько методов HTTP в одной команде curl. Сделайте это, используя опцию –next , например:

Команда содержит запрос POST, за которым следует запрос GET.

Каждый HTTP-запрос содержит агент пользователя, который отправляется как часть запроса. Он указывает информацию о браузере клиента. По умолчанию запрос содержит curl и номер версии в качестве информации об агенте пользователя. Пример вывода показан ниже:

Вы можете изменить дефолтную информацию об агенте пользователя, используя следующую команду:

Теперь вывод будет выглядеть так:

Команда Curl и Cookies

Утилиту можно использовать для проверки того, какие файлы cookie загружаются по URL. Допустим вы зашли на https://www.samplewebsite.com , вы можете вывести и сохранить файлы cookie в файл, а затем получить к ним доступ, используя команду cat или редактор Vim.

Вот пример такой команды:

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

Curl и FTP

Утилита поддерживает FTP! Вы можете использовать её для загрузки файлов с удалённого сервера.

В приведённой выше команде ftp://sampleftpserver — это FTP-сервер, который принимает соединения. Вы можете не указывать имя пользователя и пароль для анонимных FTP-соединений. Введите команду и посмотрите, как заполняется индикатор выполнения.

Вы также можете загружать файлы с помощью этой команды:

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

Ограничение Скорости Скачивания

Скачивая или загружая данные с помощью Curl, вы не можете знать, насколько большим будет вывод. Вы можете ограничить скорость скачивания, чтобы убедиться, что Curl не ограничивает пропускную способность канала.

Команда ниже ограничивает скорость скачивания до 100К:

Выводы

В этом руководстве мы рассказали вам, что такое curl, а также, как использовать эту мощную утилиту для скачивания и загрузки данных. Если вы работаете с командной строкой, то вам стоит научиться пользоваться этой командой. На самом деле Curl — это не просто утилита командной строки для Linux или Windows. Она имеет много вариантов применения и поддерживает разные протоколы.

И помните, если вам нужна помощь или вы хотите узнать более сложные команды Curl, вы всегда можете обратиться к руководству, которое должно быть во всех версиях Unix:

Мы надеемся, что это руководство станет для вас отправной точкой в использовании этой утилиты. И не забудьте рассказать нам о своём опыте работы с ней в комментариях!

Автор

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Есть ли способ установить cURL в Windows, чтобы запускать cURL команды из командной строки ?

Загрузите cURL для Windows отсюда (и обязательно выберите его из Win32 — Общий путь вниз на странице).

Затем поместите его в каталог внутри переменной среды PATH (т.е.:) C:\Windows\System32 или запустите его, указав полный путь, предшествующий имени исполняемого файла.

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

Если вы устанавливаете Git для Windows, вы автоматически получаете Curl. Есть несколько преимуществ:

  • Git PATH автоматически выполняет настройку во время установки.
  • Вы получаете GNU bash , действительно мощную оболочку, на мой взгляд, намного лучше, чем родная консоль Windows.
  • Вы получаете много других полезных инструментов Linux, таких как tail, cat, grep, gzip, pdftotext, less, sort, tar, vim и даже Perl.

Для тех, кому буквально не нужен curl исполняемый файл, а просто нужно, например, просмотреть или сохранить результаты запроса GET, можно использовать powershell напрямую. В обычной командной строке введите:

что, хотя немного многословно, похоже на набор текста

в более юникс-окружении.

Более подробная информация net.webclient доступна здесь: Методы WebClient (System.Net) .

После установки OpenSSL Light перезагрузите Windows, откройте командную строку и выполните тестовую команду, например:

Если вы вернули HTML-теги, это сработало.

Как настроить cURL:

  • Загрузите и распакуйте 64-битный cURL с SSL.
  • Скопируйте curl.exe файл в PATH папку Windows . По умолчанию это так C:\Windows\System32 .
  • Загрузите и установите 64-разрядную версию Visual Studio 2010 C ++, распространяемую 64-разрядной версией здесь .
  • Загрузите последнюю версию открытых ключей Certficate Authority с сайта mozilla.org здесь .
  • Переименуйте этот файл из cacert.pem в curl-ca-bundle.crt .
  • Переместите этот файл в PATH папку Windows .

Как это проверить:

  • Запустите, cmd.exe чтобы открыть командную строку.
  • Для обеих команд вы должны увидеть пару страниц исходного кода HTML. Если вы видите это, cURL работает!

Tar и Curl доступны в Windows, начиная с версии Insider Build 17063, как часть цепочки инструментов Windows: curl и bsdtar.

Tar : инструмент командной строки, который позволяет пользователю извлекать файлы и создавать архивы. Вне PowerShell или установки стороннего программного обеспечения не было никакого способа извлечь файл из cmd.exe. Реализация использует libarchive.

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

Примечание. PowerShell уже предлагает аналогичные функции (у него есть curl и собственные утилиты для извлечения файлов).

cURL может быть использован самыми различными и интересными способами. С помощью этого инструмента вы можете скачать, загрузить файлы и управлять ими, проверить свой адрес электронной почты, или даже обновлять свой статус на некоторых веб – сайтах социальных медиа или проверить погоду на улице. В этой статье мы рассмотрим пять наиболее полезных и основных видов использования инструмента cURL на любой Linux VPS.

1. Проверьте URL

Одним из наиболее распространенных и простейших применений cURL печатает саму команду, а затем URL, который вы хотите проверить

Эта команда будет отображать содержимое URL на вашем терминале

2. Сохраните вывод URL в файл

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

В этом примере, вывод будет сохранен в файл с именем ‘website’ в текущем рабочем каталоге.

3. Загрузка файлов с помощью Curl

Вы можете скачивать файлы при помощи Curl, путем добавления опции -o к команде. Он используется для сохранения файлов на локальном сервере с теми же именами, как и на удаленном сервере

В этом примере архив ‘file.zip’ будет загружен в текущий рабочий каталог.

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

Таким образом, архив ‘file. zip’ будет загружен и сохранен как ‘Archive.zip’.

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

Curl также можно использовать для загрузки файлов надежно через SSH с помощью следующей команды

Обратите внимание, что вы должны использовать полный путь к файлу, который требуется загрузить

4. Взять информацию из заголовка HTTP веб-сайта

Вы можете легко получить информацию заголовка HTTP из любого веб-сайта, добавив опцию -I (‘i’) к cURL.

5. Доступ к FTP-серверу

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

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

Вы можете скачать файл с помощью FTP

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

Вы можете проверить страницу Curl вручную, чтобы увидеть все доступные опции cURL и его функциональные возможности

PS. Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях с помощью кнопок ниже или просто оставьте комментарий. Благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

  • Вопросы
  • Исправлено
  • Программы
  • Обзор
  • Игры
  • Как
  • Обои

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.

Написание HTTP-запросов с помощью Curl

Эта статья предполагает, что вам известны основы построения сетей и язык HTML.

Возможность написания скриптов является существенной при построении хорошей компьютерной системы. Расширяемость возможностей Unix-систем при помощи shell-скриптов и различных программ, выполняющих автоматизированные команды — вот одна из причин того, почему они имеют такой успех.

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

Curl — инструмент командной строки, который позволяет проделывать URL-манипуляции и передачи различного рода. Эта статья сфокусирована на создании простых HTTP-запросов. Предполагается, что вы уже знаете где набирать

# curl —help

или

# curl —manual

для получения информации о curl.

Curl не является инструментом, который будет делать все за вас. Он создает запросы, принимает данные и отсылает данные. Возможно, вам потребуется какой-то «клей» для объединения всего, возможно какой-то скриптовый язык (например bash) или несколько ручных вызовов.

1. Протокол HTTP

HTTP — это протокол, используемый при приеме данных от web-серверов. Это очень простой протокол, который построен на TCP/IP. Протокол также позволяет отправлять информацию на сервер от клиента, используя несколько методов, как будет показано далее.

HTTP — это строки ASCII-текста, отсылаемые от клиента к серверу для запроса какого-либо действия. При получении запроса сервер отвечает клиенту несколькими служебными текстовыми строками, а затем и собственно контентом.

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

2. URL

Формат URL (Uniform Resource Locator — универсальный адрес ресурса) задает адрес определенного ресурса в Интернете. Вам это наверняка известно, примеры URL: http://curl.haxx.se или https://yourbank.com.

3. Получить (GET) страницу

Простейший и самый обычный HTTP-запрос — получить содержимое URL. URL может ссылаться на web-страницу, картинку или файл. Клиент отсылает GET-запрос на сервер и получает запрашиваемый документ. Если выполнить команду

# curl http://curl.haxx.se

вы получите web-страницу, выведенную в ваше терминальное окно. Полный HTML-документ, который содержится по этому адресу URL.

Все HTTP-ответы содержат набор заголовков, которые обычно скрыты. Чтобы их увидеть вместе с самим документом, используйте ключ curl -i. Вы можете также запросить только заголовки при помощи ключа -I (который заставит curl сделать HEAD-запрос).

4. Формы

Формы — основной способ представления web-сайта как HTML-страницы с полями, в которые пользователь вводит данные, и затем нажимает на кнопку ‘OK’ или ‘Отправить’, после чего данные отсылаются на сервер. Затем сервер использует принятые данные и решает, как действовать дальше: искать информацию в базе данных, показать введенный адрес на карте, добавить сообщение об ошибке или использовать информацию для аутентификации пользователя. Разумеется, на стороне сервера имеется какая-то программа, которая принимает ваши данные.

4.1 GET

GET-форма использует метод GET, например следующим образом:

<form method=»GET» action=»junk.cgi»>

<input type=text name=»birthyear»>

<input type=submit name=press value=»OK»>

</form>

Если вы откроете этот код в вашем браузере, вы увидите форму с текстовым полем и кнопку с надписью «OK». Если вы введете ‘1905’ и нажмете OK, браузер создаст новый URL, по которому и проследует. URL будет представляться строкой, состоящей из пути предыдущего URL и строки, подобной «junk.cgi?birthyear=1905&press=OK».

Например, если форма располагалась по адресу «www.hotmail.com/when/birth.html», то при нажатии на кнопку OK вы попадете на URL «www. hotmail.com/when/junk.cgi?birthyear=1905&press=OK».

Большинство поисковых систем работают таким образом.

Чтобы curl сформировал GET-запрос, просто введите то, что ожидалось от формы:

# curl «www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK»

4.2 POST

Метод GET приводит к тому, что вся введенная информация отображается в адресной строке вашего браузера. Может быть это хорошо, когда вам нужно добавить страницу в закладки, но это очевидный недостаток, когда вы вводите в поля формы секретную информацию, либо когда объем информации, вводимый в поля, слишком велик (что приводит к нечитаемому URL).

Протокол HTTP предоставляет метод POST. С помощью него клиент отправляет данные отдельно от URL и поэтому вы не увидете их в адресной строке.

Форма, генерирующая POST-запрос, похожа на предыдущую:

<form method=»POST» action=»junk.cgi»>

<input type=text name=»birthyear»>

<input type=submit name=press value=» OK «>

</form>

Curl может сформировать POST-запрос с теми же данными следующим образом:

# curl -d «birthyear=1905&press=%20OK%20» www. hotmail.com/when/junk.cgi

Этот POST-запрос использует ‘Content-Type application/x-www-form-urlencoded’, это самый широко используемый способ.

Данные, которые вы отправляете к серверу, должны быть правильно закодированы, curl не будет делать это за вас. К примеру, если вы хотите, чтобы данные содержали пробел, вам нужно заменить этот пробел на %20 и т.п. Недостаток внимания к этому вопросу — частая ошибка, из-за чего данные передаются не так, как надо.

4.3 Загрузка файлов с помощью POST (File Upload POST)

В далеком 1995 был определен дополнительный способ передавать данные по HTTP. Он задокументирован в RFC 1867, поэтому этот способ иногда называют RFC1867-posting.

Этот метод в основном разработан для лучшей поддержки загрузки файлов. Форма, которая позволяет пользователю загрузить файл, выглядит на HTML примерно следующим образом:

<form method=»POST» enctype=’multipart/form-data’ action=»upload.cgi»>

<input type=file name=upload>

<input type=submit name=press value=»OK»>

</form>

Заметьте, что тип содержимого Content-Type установлен в multipart/form-data.

Чтобы отослать данные в такую форму с помощью curl, введите команду:

# curl -F upload=@localfilename -F press=OK [URL]

4.4 Скрытые поля

Обычный способ для передачи информации о состоянии в HTML-приложениях — использование скрытых полей в формах. Скрытые поля не заполняются, они невидимы для пользователя и передаются так же, как и обычные поля.

Простой пример формы с одним видимым полем, одним скрытым и кнопкой ОК:

<form method=»POST» action=»foobar.cgi»>

<input type=text name=»birthyear»>

<input type=hidden name=»person» value=»daniel»>

<input type=submit name=»press» value=»OK»>

</form>

Чтобы отправить POST-запрос с помощью curl, вам не нужно думать о том, скрытое поле или нет. Для curl они все одинаковы:

# curl -d «birthyear=1905&press=OK&person=daniel» [URL]

4.5 Узнать, как выглядит POST-запрос

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

Простой способ увидеть свой POST-запрос, это сохранить HTML-страницу с формой на диск, изменить метод на GET, и нажать кнопку ‘Отправить’ (вы можете также изменить URL, которому будет передаваться данные).

Вы увидите, что данные присоединились к URL, отделенные символами ‘?’, как и предполагается при использовании GET-форм.

5. PUT

Пожалуй, лучший способ загружать данные на HTTP-сервер, это использовать PUT. Опять же, это требует программы (скрипта) на серверной части, которая знает, что делать и как принимать поток HTTP PUT.

Отослать файл на сервер при помощи curl:

# curl -T uploadfile www.uploadhttp.com/receive.cgi

6. Аутентификация

Аутентификация — передача серверу имени пользователя и пароля, после этого он проверяет, имеете ли вы право выполнить требуемый запрос. Аутентификация по методу Basic (которым curl пользуется по умолчанию) основана на открытом тексте, что означает, что имя пользователя и пароль не будут зашифрованы, а лишь слегка «затуманены» по алгоритму Base64, что оставляет возможность узнать эту информацию злоумышленникам на пути между вами и HTTP-сервером.

Указание curl использовать имя пользователя и пароль:

# curl -u name:password www.secrets.com

Сайт может требовать использования другого метода аутентификации (посмотрите, что пишет сервер в заголовках), в этих случаях можно использовать ключи —ntlm, —digest, —negotiate или даже —anyauth. Иногда доступ к внешним HTTP-серверам происходит через прокси, так часто делают в компаниях и фирмах. HTTP-прокси может требовать свои логин и пароль для доступа к Интернету. Соответствующий ключ curl:

# curl -U proxyuser:proxypassword curl.haxx.se

Если прокси требует аутентификации по методу NTLM, укажите —proxy-ntlm, если метод Digest, то —proxy-digest.

Если вы не укажете пароль в ключах -u и -U, то curl спросит его у вас в интерактивном режиме.

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

7. Referer

HTTP-запрос может включать поле ‘referer’, которое указывает, с какого URL пользователь пришел на данный ресурс. Некоторые программы/скрипты проверяют поле ‘referer’ и не выполняют запрос, если пользователь пришел с неизвестной страницы. Хотя это и глупый способ проверки, тем не менее многие скрипты используют его. С помощью curl вы можете вписать что угодно в поле ‘referer’ и таким образом заставлять выполнять то, что вам нужно.

Это делается следующим образом:

# curl -e http://curl.haxx.se daniel.haxx.se

8. User Agent

Все HTTP-запросы поддерживают поле ‘User-Agent’, в котором указывается клиентское приложение пользователя. Многие web-приложения используют эту информацию, чтобы тем или иным способом отобразить страницу. Web-программисты создают несколько версий страницы для пользователей разных браузеров в целях улучшения внешнего вида, использования различных скриптов javascript, vbscript и т.д.

Иногда вы можете обнаружить, что curl возвращает страницу не такой, какой вы ее видели в своем браузере. В этом случае как раз уместно использовать поле ‘User Agent’, чтобы в очередной раз обмануть сервер.

Замаскировать curl под Internet Explorer на машине с Windows 2000:

# curl -A «Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)» [URL]

Почему бы не стать Netscape 4.73 на Linux-машине (PIII):

# curl -A «Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)» [URL]

9. Перенаправления (redirects)

Отвечая на ваш запрос, сервер вместо самой страницы может вернуть указание, куда браузер должен пойти дальше, чтобы попасть на нужную страницу. Заголовок, который указывает браузеру такое перенаправление — это ‘Location:’.

По умолчанию curl не идет по адресу, указанному в ‘Location:’, а просто показывает страницу как обычно. Но можно его направить следующим образом:

# curl -L www.sitethatredirects.com

Если вы используете curl для POST-запросов на сайт, который сразу же перенаправляет на другую страницу, вы можете смело использовать связку -L и -d/-F. Curl сформирует POST-запрос для первой страницы, а затем GET-запрос для последующей.

10. Cookies

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

Когда клиент соединяется с сервером по адресу, указанному в принятом cookie, клиент посылает этот cookie к серверу (если время жизни не истекло).

Многие приложения и сервера используют этот метод, чтобы объединить нескольких запросов в одну логическую сессию. Чтобы curl также мог выполнять такую функцию, мы должны уметь сохранять и отправлять cookies, как и делают браузеры.

Простейший способ отправить cookie к серверу при получении страницы с помощью curl, это добавить соответствующий ключ в командной строке:

# curl -b «name=Daniel» www. cookiesite.com

Cookies отправляются как обычные HTTP-заголовки. Это позволяет curl сохранять cookies, сохраняя заголовки. Сохранение cookies с помощью curl выполняется командой:

# curl -D headers_and_cookies www.cookiesite.com

(кстати, для сохранения cookies лучше использовать ключ -c, об этом ниже).

У curl имеется полнофункциональный обработчик cookies, который полезен, когда вы хотите соединиться в очередной раз к серверу и использовать cookies, сохраненные в прошлый раз (либо подработанные вручную). Для использования cookies, сохраненных в файле, вызовите curl так:

# curl -b stored_cookies_in_file www.cookiesite.com

«Cookie-движок» curl включается, когда вы указываете ключ -b. Если вы хотите, чтобы curl лишь воспринимал cookies, используйте -b с указанием файла, которого не существует. Например, если вы хотите, чтобы curl принял cookies со страницы, а затем пошел по перенаправлению (возможно, отдав принятый только что cookie), то можно вызывать curl так:

# curl -b nada -L www. cookiesite.com

Curl умеет читать и писать cookie-файлы, имеющие формат Netscape и Mozilla. Это удобный способ обмениваться cookies между браузерами и автоматическими скриптами. Ключ -b автоматически определяет, является ли данный файл cookie-файлом указанных браузеров и обрабатывает его соответствующим образом, а используя ключ -c/—cookie-jar, вы можете заставить curl записать новый cookie-файл по завершении операции:

# curl -b cookies.txt -c newcookies.txt www.cookiesite.com

11. HTTPS

Есть несколько способов обезопасить ваши HTTP-передачи. Наиболее известным протоколом, решающим эту задачу, является HTTPS, или HTTP over SSL. SSL зашифровывает все посылаемые и принимаемые по сети данные, что увеличивает вероятность того, что ваша информация останется в тайне.

Curl поддерживает запросы к HTTPS-серверам благодаря свободно распространяемой библиотеке OpenSSL. Запросы происходят обычным способом:

# curl https://that.secure.server.com

11. 1 Сертификаты

В мире HTTPS для аутентификации в дополнение к имени пользовавателя и паролю вы используете сертификаты. Curl поддерживает сертификаты на стороне клиента. Все сертификаты заперты ключевой фразой, которую вам нужно ввести прежде чем curl может начать с ними работу. Ключевая фраза может быть указана либо в командной строке, либо введена в интерактивном режиме. Сертификаты в curl используются следующим образом:

# curl -E mycert.pem https://that.secure.server.com

Curl также проверяет сервер на подлинность, сверяя сертификат сервера с локально хранящимся. Обнаружившееся несоответствие приведет к тому, что curl откажется соединяться. Для игнорирования проверки на подлинность используйте ключ -k.

Более подробная информация о сертификатах может быть найдена на странице http://curl.haxx.se/docs/sslcerts.html.

12. Произвольные заголовки запроса

Возможно, вам понадобится изменять или добавлять элементы отдельных запросов curl.

К примеру, вы можете изменить запрос POST на PROPFIND и отправить данные как «Content-Type: text/xml» (вместо обычного Content-Type):

# curl -d «<xml>» -H «Content-Type: text/xml» -X PROPFIND url. com

Вы можете удалить какой-нибудь заголовок, указав его без содержимого. Например, вы можете удалить заголовок ‘Host:’, тем самым сделав запрос «пустым»:

# curl -H «Host:» http://mysite.com

Также вы можете добавлять заголовки. Возможно, вашему серверу потребуется заголовок ‘Destination:’:

# curl -H «Destination: http://moo.com/nowhere» http://url.com

13. Отладка

Часто бывает так, что сайт реагирует на запросы curl не так, как на запросы браузера. В этом случае нужно максимально уподобить curl браузеру:

  • Используйте ключ —trace-ascii для сохранения подробного отчета запросов, чтобы затем подробно изучить их и разобраться в проблеме.
  • Убедитесь, что вы проверяете на cookies и используете их при необходимости (ключ чтения -b и сохранения -c)
  • Укажите в поле ‘user-agent’ один из последних популярных браузеров
  • Заполните поле ‘referer’ как это делает браузер
  • Если вы используете POST-запросы, убедитесь, что все поля передаются в том же порядке, что и браузер (см. выше, пункт 4.5)

Хороший помощник в этом нелегком деле — плагин для Mozilla/Firefox LiveHTTPHeader, который позволяет просматривать все заголовки, которые отправляет и принимает этот браузер (даже при использовании HTTPS).

Более низкоуровневый подход — захват HTTP-траффика в сети с помощью программ, таких как ethereal или tcpdump, с последующим анализом, какие заголовки были получены и отправлены браузером (HTTPS делает этот подход неэффективным).

14. Ссылки

RFC 2616 обязательно для чтения всем, кто хочет понять протокол HTTP.

RFC 2396 объясняет синтаксис URL.

RFC 2109 определяет работу cookies.

RFC 1867 определяет формат File Upload Post.

http://openssl.planetmirror.com — домашняя страница проекта OpenSSL

http://curl.haxx.se — домашняя страница проекта cURL

Команда Curl в Unix/Linux | linux-notes.org

Curl утилита для скачивания и загрузки файлов. В данной теме «Команда Curl в Unix/Linux» я расскажу как можно ее использовать на готовых примерах.

Команды Curl для загрузки файлов

1. Скачать и сохранить файл. 

Чтобы просто скачать файл с помощью Curl использование следующий синтаксис что ниже. Опция «-О» используется для сохранения файла на локальной системе с таким же именем что и на удаленной системе.

# curl -O https://linux-notes.org/test_file.zip

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

Если вы хотите сохранить файл с другим именем на локальной системе, используйте параметр «-o» с новым именем файла.

# curl -o https://linux-notes.org/test_file.zip

3. Скачать и сохранить несколько файлов одновременно. 

Curl также дает возможность загружать несколько файлов одновременно. Все файлы будут сохраняться с оригинальными именами.

# curl -O https://linux-notes.org/test_file1.zip -O https://linux-notes.org/test_file2.zip

4. Скачать и сохранить файл с авторизированного сервера. 

В данном случае файлы будут скачиваться с сервера с аутентификацией HTTP или FTP. Вы можете передать учетные данные для входа, используя параметр «-u».

# curl -u your_auth_user:your_auth_PW -O https://linux-notes.org/test_file.zip
# curl -u your_auth_ftpuser:your_auth_ftpPW -O https://linux-notes.org/test_file.zip

5. Скачать и сохранить файл используя прокси сервер

Если файл-сервер доступен только через прокси-сервер или вы хотите использовать прокси-сервер для загрузки файлов, использование опцию «-x» с последующим адрес прокси-сервера и портом для загрузки файла через прокси-сервер.

$ curl -x this_your_proxy_server:port -O https://linux-notes.org/test_file.zip

Команды Curl для получения заголовков

Например, можно получить заголовки от сервера следующим образом:

# curl -I https://linux-notes.org/index.php

Для получения статуса от сервера используйте:

$ curl -Is https://linux-notes.org/ | head -1

или

$ curl -Is https://linux-notes.org/ | head -1 |cut -d" " -f2

А так же:

$ curl -sL -w "%{http_code}" linux-notes. org:80 -o /dev/null

или

$ curl -Is https://linux-notes.org/ | head -1 |awk '{ print $2;}'

Так же, можно проверить https УРЛ:

$ curl --insecure --silent --show-error --connect-timeout 1 -I https://linux-notes.org 

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 18 Mar 2017 22:14:17 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://linux-notes.org/
Cache-Control: max-age=86400, public, must-revalidate, proxy-revalidate
Strict-Transport-Security: max-age=63072000; includeSubdomains; preload
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Public-Key-Pins: pin-sha256="IFcSE6waV/oqKTxdUwTtx1oUgbXCQ+oWGL/osCF3fnQ="; pin-sha256="47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="; max-age=2592000; includeSubDomains
Alternative-Protocol: 443:npn-spdy/3.1
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ssl. google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://themes.googleusercontent.com https://fonts.gstatic.com http://fonts.googleapis.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'
Content-Security-Policy-Report-Only: default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report

Как-то так.

Можно по URL, узнать какой веб-сервер используется:

$ curl -IL linux-notes.org 2>/dev/null | grep Server

Иногда, полезно задействовать ограничение с переадресацией, например — ограничим до 10 переадресаций:

$ curl --location --max-redirs 10 https://linux-notes. HTTP

Выполнить bash скрипт из URL

Пример один:

$ bash < <(curl -s https://linux-notes.org/myscript.sh)

Идем дальше, следующий пример:

$ curl -s https://linux-notes.org/myscript.sh | bash -s --

Или, если есть ниобходимось задать входные данные:

$ curl -s https://linux-notes.org/myscript.sh | bash -s arg1 arg2

Вот еще один интересный пример:

$ source <(curl -s https://linux-notes.org.com/myscript.sh)

Самый простой вариант:

$ curl -s -L https://linux-notes.org | bash

Как-то так.

Опции для Curl

Для подробной информации, используйте:

$ curl -h

С помощью данной утилиты можно не только скачивать файлы, я попозже ( со временем) дополню данную статью. А на этом тема «Команда Curl в Unix/Linux» завершена.

Как использовать cURL прокси? ⋆ proxyline.net

Инструкции по настройке прокси в браузерах / софтах / расширениях

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

Зачем работать с прокси?

Прокси-сервера выступают в роли «дымовой завесы»: они маскируют запросы вашего компьютера. Они будут выполняться фактически с анонимного чужого IP-адреса, что обеспечивает максимальную анонимность подключения. Сами сервера-посредники делают невозможным блокировку вашего аккаунта по IP. Таким образом, вы, фактически, для работы с Сетью используете посредника, который обеспечивает связи с серверами через иные удаленные сервера. Наиболее эффективно использование прокси для парсинга, если вам необходимо обрабатывать колоссальное количество данных. При полном развороте систем cURL вы отправляете огромное количество информации ежесекундно, поэтому вы можете быть заблокированы принимающим сервером, но система прокси выступает в роли щита, который не позволяет вас заблокировать. Блокировка обычно связана с защитой серверов от DoS атак. Использование прокси сделает вас защищенным от систем защиты. Шаги к подключению:
  1. Первым делом вы должны открыть код в cURL.
  2. Далее вам необходимо ввести параметры CURLOPT_PROXY, но рядом следует оказать IP И порт-значения для используемого вами прокси-сервера.
  3. Следом вам необходимо написать CURLOPT_PROXYTYPE, а рядом прописать сам тип применяемого прокси. Не забудьте указать соответствующие постоянные данные, характерные для работы с «сURLовской системой”.
  4. Далее с помощью функцию request укажите сайт, на который вы собираетесь войти с помощью серверов прокси.
  5. Далее определитесь с временными лимитами, после которых система определит, что запрос был обработан неверно либо он не дошел.

Как выбрать прокси?

В первую очередь, вы должны обращать внимание на полною анонимность прокси-серверов, так как сквозь прозрачные сервера ваш реальный АйПи будет возможно считать, из-за чего система может вас заблокировать. Более качественными считаются персональные анонимные сервера, которые не позволяют определить реальное местоположение своего владельца. Система может определить, что вы используете прокси, но кто вы – определить не сможет.

Установка и использование cURL — Zendesk Develop

Во всех примерах документации Zendesk REST API используется cURL, облегченный инструмент командной строки для выполнения HTTP-запросов без веб-браузера. cURL позволяет вам опробовать различные запросы API в интерфейсе командной строки, таком как командная строка в Windows или Терминал в macOS. Вам не нужно создавать работающее веб-приложение только для того, чтобы опробовать API.

cURL выполняет HTTP-запросы точно так же, как веб-браузер. Чтобы запросить веб-страницу из командной строки, введите curl , а затем URL-адрес сайта:

.

Ответ веб-сервера отображается непосредственно в интерфейсе командной строки.Если вы запросили HTML-страницу, вы получите исходный код страницы, который обычно видит браузер.

В этой статье рассматриваются следующие темы:

Связанная тема

Отказ от ответственности: Zendesk не может обеспечить поддержку сторонних технологий, таких как cURL или Windows. Сообщайте о любых проблемах в разделе комментариев или ищите решения в Интернете.

Использование cURL

Вы можете использовать cURL для проверки и тестирования различных запросов Zendesk API без необходимости создания работающего веб-приложения.Например, следующий оператор cURL выполняет HTTP-запрос к конечной точке групп списков в Zendesk API:

  завиток https://mysubdomain. zendesk.com/api/v2/groups.json \
  -v -u [email protected]: мой пароль
  

API возвращает объект JSON, в котором перечислены группы в вашем экземпляре Zendesk Support:

  Статус: 200 ОК

{
  "группы": [
    {
      "name": "DJs",
      "created_at": "2009-05-13T00: 07: 08Z",
      "updated_at": "2011-07-22T00: 11: 12Z",
      "id": 211
    },
    {
      "name": "MC",
      "created_at": "2009-08-26T00: 07: 08Z",
      "updated_at": "2010-05-13T00: 07: 08Z",
      "id": 122
    }
  ]
}
  

JSON (нотация объектов JavaScript) — это облегченный формат обмена данными.Он разработан так, чтобы людям было легко читать и писать, а машинам — анализировать и генерировать. Чтобы узнать больше, см. Работа с JSON.

Использование cURL в Windows

Вы можете использовать командную строку Windows для запуска примеров cURL. Чтобы запустить командную строку, откройте меню Start , введите cmd в поле поиска и нажмите Введите .

Примечание. Пользователи Windows 10 могут установить и использовать оболочку Bash, интерфейс командной строки Unix, такой же, как и в macOS.-v -u [email protected]: мой пароль

Вы можете вставить многострочную инструкцию в командную строку, щелкнув значок в верхнем левом углу и выбрав Правка > Вставить . Если вы предпочитаете использовать клавиатуру, нажмите Alt + пробел , чтобы открыть меню, затем нажмите E и P .

Переместить данные JSON в файл

Командная строка Windows не поддерживает одинарные кавычки. Это проблема, потому что операторы cURL используют одинарные кавычки для указания данных JSON.-v -u {email_address}: {пароль} -X POST

Оператор определяет данные JSON для создания группы (флаг -d означает данных ). Поскольку JSON заключен в одинарные кавычки, оператор не будет работать в командной строке.

Чтобы устранить проблему, сохраните JSON в отдельном файле и импортируйте его в оператор cURL. Чтобы изменить приведенный выше пример, создайте файл с именем json.txt , содержащий следующий текст:

{"group": {"name": "Моя группа"}}

Затем измените оператор cURL, чтобы импортировать данные JSON с синтаксисом @filename :

  curl https: // {субдомен}., | . Если JSON включает HTML, например, когда вы пытаетесь создать или обновить статью в Справочном центре, вам нужно найти и избежать всех угловых скобок в HTML. 

Это утомительно и подвержено ошибкам. Лучше всего придерживаться импорта JSON из файла.

Установка cURL

macOS

cURL установлен по умолчанию в macOS. Чтобы попробовать это, см. Раздел Тестирование вашей установки cURL ниже.

Windows 10, версия 1803 или более поздняя

Если у вас Windows 10 версии 1803 или новее, cURL устанавливается по умолчанию. Чтобы попробовать это, см. Раздел Тестирование вашей установки cURL ниже.

Окна

Если у вас более ранняя версия Windows, чем Windows 10, версия 1803, вы можете загрузить и установить cURL следующим образом.

  1. В Windows создайте новую папку с именем curl на диске C :.

    C: \ curl

  2. Перейдите на http://curl.haxx.se/download.html и загрузите один из следующих zip-файлов:

    • Если у вас система Windows 64, перейдите к разделу Win64 - Generic и найдите последнюю версию Win64 ia64 zip с поддержкой SSL.Обычно он второй в списке. Щелкните номер версии, чтобы начать загрузку.
    • Если у вас система Windows 32, перейдите к разделу Win32 - Generic и найдите последнюю версию Win32 zip с поддержкой SSL. Обычно он второй в списке. Щелкните номер версии, чтобы начать загрузку.
  3. Распакуйте загруженный файл и переместите файл curl. exe в папку C: \ curl.

  4. Перейдите по адресу http: // curl.haxx.se/docs/caextract.html и загрузите файл цифрового сертификата с именем cacert.pem .

    Файл PEM содержит набор действительных цифровых сертификатов. Сертификаты используются для проверки подлинности защищенных веб-сайтов. Они распространяются центрами сертификации (ЦС), такими как GlobalSign и VeriSign. Файл PEM позволяет cURL безопасно подключаться к Zendesk API с помощью протокола Secure Sockets Layer (SSL).

  5. Переместите cacert.pem в папку C: \ curl и переименуйте его в curl-ca-bundle.crt .

  6. Добавьте путь к папке curl в переменную среды Windows PATH, чтобы команда curl была доступна из любого места в командной строке. Обновите переменную следующим образом:

    1. В меню Пуск щелкните правой кнопкой мыши Этот компьютер и выберите Дополнительно> Свойства .

      Примечание : В Windows 7 щелкните правой кнопкой мыши Компьютер и выберите Свойства .

    2. Щелкните Дополнительные параметры системы .

    3. На вкладке Advanced нажмите кнопку Environment Variables в правом нижнем углу.

    4. Выберите переменную «Путь» в Системные переменные и нажмите Изменить .

    5. В диалоговом окне Изменить переменную среды щелкните Новый и добавьте путь к файлу curl.exe .Пример: C: \ curl.

      Windows 7 : в текстовом поле Variable Value добавьте точку с запятой к значению, а затем укажите путь к файлу curl.exe . Пример:; C: \ curl

    6. Продолжайте нажимать ОК, чтобы принять изменения и закрыть диалоговое окно.

Тестирование вашей установки cURL

Вы можете протестировать установку cURL, отправив запрос к Zendesk API. Тест получает информацию о вашем пользователе Zendesk Support.) персонаж. Убедитесь, что после каретки нет места. См. Раздел Использование cURL в Windows выше.

  • Замените заполнители в фигурных скобках информацией, которую вы используете для входа в Zendesk Support. Пример:

      завиток https://obscura.zendesk.com/api/v2/users/me.json \
      -v -u [email protected]: мой пароль
      
  • Запустите интерфейс командной строки.

    • В Windows откройте меню «Пуск», введите cmd в поле поиска и нажмите Введите .
    • В macOS дважды щелкните приложение «Терминал» в папке «Приложения / Утилиты».
  • Скопируйте оператор cURL из текстового файла и вставьте его в командную строку.

    Пользователи Windows : после копирования в буфер обмена выберите Edit > Paste из контекстного меню в верхнем левом углу окна:

  • Нажмите Введите , чтобы запустить оператор cURL.

    На консоли должна отображаться информация о пользователе Zendesk Support в формате объекта JSON.

    Вы можете красиво напечатать результатов, чтобы их было легче читать. См. Раздел Преобразование JSON в понятные данные.

  • Общие флаги cURL

    Вы увидите следующие флаги cURL в примерах в документации Zendesk REST API.

    -H

    Задает любое дополнительное содержимое заголовка для включения в HTTP-запрос.Запросы API, которые отправляют данные на наши серверы, обычно включают тип содержимого данных. Пример:

    Пример: -H "Content-Type: application / json" .

    -u

    Задает имя пользователя и пароль для аутентификации сервера. Имя пользователя и пароль разделяются двоеточием.

    Пример: -u [email protected]: mypassword

    -v

    Делает ответ более подробным.

    -X

    Задает метод запроса, используемый при взаимодействии с HTTP-сервером. Пример: PUT или POST .

    Примечание. GET - это метод по умолчанию, поэтому указывать его не нужно.

    Пример: -X PUT

    -G --data-urlencode

    Используется для конечных точек API, которые отправляют данные в строке запроса, например API поиска. Параметр --data-urlencode кодирует URL-адрес строки запроса. Флаг -G указывает, что данные в кодировке url предназначены для запроса GET, а не для запроса POST.

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

    .../api/v2/search.json?query=type: статус билета: открыт

    Команда cURL выглядит так:

      curl "https: // {subdomain} .zendesk.com / api / v2 / search.json" \
      -G --data-urlencode "query = type: ticket status: open" \
      -v -u {email_address}: {пароль}
      

    curl - Урок

    Фон

    Этот документ предполагает, что вы знакомы с HTML и общими сетями.

    Растущее количество приложений, перемещающихся в Интернет, сделало «HTTP-сценарии» более востребованными и востребованными.Сегодня важные задачи - иметь возможность автоматически извлекать информацию из Интернета, подделывать пользователей, публиковать или выгружать данные на веб-серверы.

    Curl - это инструмент командной строки для выполнения всевозможных манипуляций с URL-адресами и их передачи, но этот конкретный документ будет посвящен тому, как использовать его при выполнении HTTP-запросов для развлечения и получения прибыли. Я предполагаю, что вы знаете, как вызвать curl --help или curl --manual , чтобы получить основную информацию об этом.

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

    Протокол HTTP

    HTTP - это протокол, используемый для получения данных с веб-серверов. Это очень простой протокол, основанный на TCP / IP. Протокол также позволяет отправлять информацию на сервер от клиента, используя несколько различных методов, как будет показано здесь.

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

    Клиент curl отправляет HTTP-запрос. Запрос содержит метод (например, GET, POST, HEAD и т. Д.), Несколько заголовков запроса, а иногда и тело запроса. HTTP-сервер отвечает строкой состояния (указывающей, все ли прошло хорошо), заголовками ответов и, чаще всего, также телом ответа. «Тело» - это запрошенные вами простые данные, такие как фактический HTML, изображение и т. Д.

    См. Протокол

    Использование опции curl --verbose ( -v как короткая опция) покажет, какие команды curl отправляет на сервер, а также несколько других информационных текстов.

    --verbose - самый полезный параметр, когда дело доходит до отладки или даже понимания взаимодействия curl <-> с сервером.

    Иногда даже --verbose недостаточно. Затем --trace и [ --trace-ascii ] ((https://curl.se/docs/manpage.html#--trace-ascii) предлагают еще более подробную информацию, поскольку они показывают все, что отправляет curl и получает. Используйте это так:

      curl --trace-ascii debugdump.txt http: //www.example.com /
      

    Сроки

    Часто вы можете задаться вопросом, что именно занимает все время, или вы просто хотите знать количество миллисекунд между двумя точками передачи. В этих и других подобных ситуациях вам понадобится опция [ --trace-time ] ((https://curl.se/docs/manpage.html#--trace-time). Она добавит время до каждой строки вывода трассировки:

      curl --trace-ascii d.txt --trace-time http://example.com/
      

    См.

    Ответ

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

    Спецификация

    Формат Uniform Resource Locator - это способ указания адреса определенного ресурса в Интернете. Вы знаете, что вы видели такие URL-адреса, как https://curl.se или https://yourbank.com миллион раз. RFC 3986 - каноническая спецификация. И да, формальное имя - это не URL, а URI.

    Хост

    Имя хоста обычно преобразуется с помощью DNS или вашего файла / etc / hosts в IP-адрес, и именно с этим curl будет взаимодействовать.В качестве альтернативы вы можете указать IP-адрес непосредственно в URL-адресе вместо имени.

    Для разработки и других пробных ситуаций вы можете указать в качестве имени хоста IP-адрес, отличный от того, который использовался бы в противном случае, с помощью параметра curl --resolve :

      curl --resolve www. example.org:80:127.0.0.1 http://www.example.org/
      

    Номер порта

    Каждый протокол, поддерживаемый curl, работает с номером порта по умолчанию, будь то TCP или, в некоторых случаях, UDP.Обычно вам не нужно это учитывать, но иногда вы запускаете тестовые серверы на других портах или аналогичных. Затем вы можете указать номер порта в URL-адресе с двоеточием и числом сразу после имени хоста. Как при использовании HTTP на порт 1234:

      локон http://www.example.org:1234/
      

    Номер порта, который вы указываете в URL-адресе, - это номер, который сервер использует для предоставления своих услуг. Иногда вы можете использовать локальный прокси, и тогда вам может потребоваться указать номер порта этого прокси отдельно для того, к чему curl необходимо подключиться локально.Как при использовании HTTP-прокси на порту 4321:

      curl --proxy http://proxy.example.org:4321 http://remote.example.org/
      

    Имя пользователя и пароль

    Некоторые службы настроены так, чтобы требовать аутентификации HTTP, и затем вам необходимо указать имя и пароль, которые затем передаются на удаленный сайт различными способами в зависимости от конкретного используемого протокола аутентификации.

    Вы можете либо указать пользователя и пароль в URL-адресе, либо указать их отдельно:

      curl http: // user: password @ example.org /
      

    или

      curl -u пользователь: пароль http://example.org/
      

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

    Часть пути

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

    ПОЛУЧИТЬ

    Самый простой и наиболее распространенный запрос / операция, выполняемая с использованием HTTP, - это ПОЛУЧЕНИЕ URL. Сам URL-адрес может относиться к веб-странице, изображению или файлу. Клиент отправляет серверу запрос GET и получает запрошенный документ. Если вы вводите командную строку

      завиток https://curl.se
      

    , вы получаете веб-страницу, возвращаемую в окно терминала. Весь HTML-документ, содержащийся в этом URL.

    Все ответы HTTP содержат набор заголовков ответов, которые обычно скрыты, используйте параметр curl --include ( -i ), чтобы отобразить их, а также остальную часть документа.

    ГОЛОВКА

    Вы можете запросить у удаленного сервера ТОЛЬКО заголовки, используя параметр --head ( -I ), который заставит curl выдавать запрос HEAD. В некоторых особых случаях серверы отклоняют метод HEAD, в то время как другие все еще работают, что вызывает особенное раздражение.

    Метод HEAD определен и сделан так, чтобы сервер возвращал заголовки точно так же, как это было бы для GET, но без тела. Это означает, что вы можете увидеть Content-Length: в заголовках ответа, но в ответе HEAD не должно быть фактического тела.

    Несколько URL-адресов в одной командной строке

    Одна командная строка curl может включать один или несколько URL-адресов. Самый распространенный случай - это, вероятно, просто использовать один, но вы можете указать любое количество URL-адресов. Да любой. Без ограничений. Затем вы будете получать запросы, повторяющиеся снова и снова для всех заданных URL.

    Пример, отправьте два GET:

      curl http://url1.example.com http://url2.example.com
      

    Если вы используете --data для POST к URL-адресу, использование нескольких URL-адресов означает, что вы отправляете тот же POST-запрос на все указанные URL-адреса.

    Пример, отправьте два POST:

      curl --data name = curl http://url1.example.com http://url2.example.com
      

    Несколько методов HTTP в одной командной строке

    Иногда вам нужно работать с несколькими URL-адресами в одной командной строке и использовать для каждого разные методы HTTP. Для этого вам понравится опция --next . По сути, это разделитель, который отделяет несколько вариантов от следующих. Все URL-адреса до --next получат один и тот же метод и объединят все данные POST в один.

    Когда curl достигает значения --next в командной строке, он как бы сбрасывает метод и данные POST и разрешает новый набор.

    Возможно, лучше всего это показать на нескольких примерах. Чтобы отправить сначала HEAD, а затем GET:

      curl -I http://example.com --next http://example.com
      

    Чтобы сначала отправить POST, а затем GET:

      curl -d score = 10 http://example.com/post.cgi --next http://example.com/results.html
      

    Формы объяснения

    Формы

    - это общий способ, которым веб-сайт может представить HTML-страницу с полями, в которые пользователь может ввести данные, а затем нажать какую-то кнопку «ОК» или «Отправить», чтобы получить эти данные, отправленные на сервер. Затем сервер обычно использует опубликованные данные, чтобы решить, как действовать. Подобно использованию введенных слов для поиска в базе данных или добавления информации в систему отслеживания ошибок, отображение введенного адреса на карте или использование информации в качестве приглашения для входа в систему, подтверждающего, что пользователю разрешено видеть, о чем идет речь чтобы увидеть.

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

    ПОЛУЧИТЬ

    Форма GET использует метод GET, как указано в HTML, например:

    В вашем любимом браузере появится эта форма с текстовым полем, которое необходимо заполнить, и кнопкой с надписью «ОК».Если вы введете «1905» и нажмете кнопку «ОК», ваш браузер создаст для вас новый URL-адрес. К URL-адресу будет добавлено junk.cgi? Birthyear = 1905 & press = OK , добавленное к части пути предыдущего URL-адреса.

    Если исходная форма была видна на странице www.example.com/when/birth.html , вторая страница, которую вы получите, станет www.example.com/when/junk.cgi?birthyear=1905&press= ОК .

    Большинство поисковых систем работают именно так.

    Чтобы curl выполнял за вас сообщение формы GET, просто введите ожидаемый созданный URL:

      curl "http: // www.example.com/when/junk.cgi?birthyear=1905&press=OK "
      

    ПОСТ

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

    Затем протокол HTTP предлагает метод POST.Таким образом, клиент отправляет данные, отделенные от URL-адреса, и поэтому вы не увидите их в поле URL-адреса.

    Форма будет очень похожа на предыдущую:

    И чтобы использовать curl для публикации этой формы с теми же данными, что и раньше, мы могли бы сделать это так:

      curl --data "Birthyear = 1905 & press =% 20OK% 20" http://www.example.com/when.cgi
      

    Этот тип POST будет использовать Content-Type `application / x-www-form-urlencoded 'и является наиболее широко используемым типом POST.

    Данные, которые вы отправляете на сервер, ДОЛЖНЫ быть уже правильно закодированы, curl не сделает этого за вас. Например, если вы хотите, чтобы данные содержали пробел, вам необходимо заменить это пространство на% 20 и т. Д. Несоблюдение этого требования, скорее всего, приведет к неправильному получению данных и их искажению.

    Последние версии curl могут фактически использовать url-кодирование данных POST для вас, например:

      curl --data-urlencode "name = Я Даниэль" http://www.example.com
      

    Если вы повторите --data несколько раз в командной строке, curl объединит все заданные части данных и поместит символы и между каждым сегментом данных.

    Загрузка файла POST

    Еще в конце 1995 года они определили дополнительный способ отправки данных через HTTP. Это описано в RFC 1867, поэтому этот метод иногда называют RFC1867-posting.

    Этот метод в основном разработан для лучшей поддержки загрузки файлов. Форма, которая позволяет пользователю загружать файл, может быть написана в HTML так:

    Это ясно показывает, что Content-Type, который будет отправлен, - это multipart / form-data .

    Чтобы отправить сообщение в такую ​​форму с помощью curl, введите командную строку, например:

      curl --form upload = @ localfilename --form press = OK [URL]
      

    Скрытые поля

    Очень распространенный способ передачи информации о состоянии между страницами приложениями на основе HTML - это добавление скрытых полей в формы.Скрытые поля уже заполнены, они не отображаются для пользователя и передаются, как и все другие поля.

    Аналогичный пример формы с одним видимым полем, одним скрытым полем и одной кнопкой отправки может выглядеть так:

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

      curl --data "Birthyear = 1905 & press = OK & person = daniel" [URL]
      

    Определите, как выглядит POST

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

    Легкий способ увидеть это - сохранить HTML-страницу с формой на локальном диске, изменить «метод» на GET и нажать кнопку отправки (вы также можете изменить URL-адрес действия, если хотите ).

    После этого вы четко увидите, как данные добавляются к URL-адресу, разделенные знаком ? -буквенное обозначение, как предполагается в формах GET.

    PUT

    Возможно, лучший способ загрузить данные на HTTP-сервер - использовать PUT. С другой стороны, это, конечно же, требует, чтобы кто-то поместил программу или сценарий на стороне сервера, который знает, как получить поток HTTP PUT.

    Поместите файл на HTTP-сервер с помощью curl:

      curl - файл загрузки файла загрузки http://www. example.com/receive.cgi
      

    Базовая аутентификация

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

    Чтобы указать curl использовать пользователя и пароль для аутентификации:

      curl - имя пользователя: пароль http://www.example.com
      

    Другая проверка подлинности

    Для сайта может потребоваться другой метод аутентификации (проверьте заголовки, возвращаемые сервером), и тогда подходящими вариантами могут быть --ntlm , --digest , --negotiate или даже --anyauth . ты.

    Аутентификация прокси

    Иногда доступ по протоколу HTTP доступен только через прокси-сервер HTTP.Кажется, это особенно характерно для различных компаний. Прокси-сервер HTTP может потребовать своего собственного пользователя и пароля, чтобы позволить клиенту выйти в Интернет. Чтобы указать их с помощью curl, введите что-то вроде:

      curl --proxy-user proxyuser: proxypassword curl.se
      

    Если ваш прокси-сервер требует, чтобы аутентификация выполнялась методом NTLM, используйте --proxy-ntlm , если требуется дайджест, используйте --proxy-digest .

    Если вы используете любую из этих опций «пользователь + пароль», но опускаете часть пароля, curl запросит пароль в интерактивном режиме.

    Скрытие учетных данных

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

    Стоит отметить, что хотя именно так работает HTTP-аутентификация, очень многие веб-сайты не будут использовать эту концепцию, когда они предоставляют логины и т. Д. См. Главу Web Login ниже для более подробной информации.

    Referer

    HTTP-запрос может включать поле «referer» (да, оно написано с ошибкой), которое может использоваться, чтобы определить, с какого URL-адреса клиент перешел на этот конкретный ресурс. Некоторые программы / скрипты проверяют поле referer запросов, чтобы убедиться, что оно не пришло с внешнего сайта или неизвестной страницы. Хотя это глупый способ проверить что-то, что так легко подделать, многие скрипты все же это делают. Используя curl, вы можете поместить все, что хотите, в поле referer и, таким образом, легче обмануть сервер, чтобы он обслужил ваш запрос.

    Используйте curl для установки поля реферера с:

      curl --referer http: //www.example.come http://www.example.com
      

    Агент пользователя

    Очень похоже на поле referer, все HTTP-запросы могут устанавливать поле User-Agent. Он указывает, какой пользовательский агент (клиент) используется. Многие приложения используют эту информацию, чтобы решить, как отображать страницы. Глупые веб-программисты пытаются сделать разные страницы для пользователей разных браузеров, чтобы они выглядели как можно лучше для их конкретных браузеров.Обычно они также создают различные типы javascript, vbscript и т. Д.

    Иногда вы видите, что получение страницы с помощью curl не возвращает ту же страницу, которую вы видите при открытии страницы в своем браузере. Тогда вы знаете, что пришло время установить поле User Agent, чтобы заставить сервер думать, что вы один из тех браузеров.

    Чтобы curl выглядел как Internet Explorer 5 в Windows 2000:

      curl --user-agent "Mozilla / 4.0 (совместимый; MSIE 5.01; Windows NT 5.0) "[URL]
      

    Или почему бы не выглядеть так, будто вы используете Netscape 4.73 на старом Linux:

      curl --user-agent "Mozilla / 4.73 [en] (X11; U; Linux 2. 2.15 i686)" [URL]
      

    Перенаправляет

    Когда ресурс запрашивается с сервера, ответ сервера может включать подсказку о том, куда браузер должен перейти дальше, чтобы найти эту страницу, или новую страницу, содержащую вновь сгенерированный вывод. Заголовок, который сообщает браузеру о перенаправлении, - . Местоположение: .

    Curl не следует за заголовками Location: по умолчанию, а просто отображает такие страницы таким же образом, как и все ответы HTTP. Однако в нем есть опция, которая заставит его пытаться следовать указателям Location: .

    Указать curl следовать за местоположением:

      curl - расположение http://www.example.com
      

    Если вы используете curl для POST на сайт, который немедленно перенаправляет вас на другую страницу, вы можете безопасно использовать --location ( -L ) и --data / --form вместе.curl будет использовать POST только в первом запросе, а затем вернется к GET в следующих операциях.

    Другие перенаправления

    Браузер обычно поддерживает как минимум два других способа перенаправления, которые не поддерживает curl: сначала html может содержать мета-тег обновления, который просит браузер загрузить определенный URL-адрес через заданное количество секунд, или он может использовать для этого javascript .

    Основы файлов cookie

    Веб-браузеры осуществляют «контроль состояния на стороне клиента» с помощью файлов cookie.Файлы cookie - это просто имена со связанным содержимым. Файлы cookie отправляются клиенту сервером. Сервер сообщает клиенту, для какого пути и имени хоста он хочет, чтобы cookie был отправлен обратно, а также отправляет дату истечения срока и еще несколько свойств.

    Когда клиент связывается с сервером с именем и путем, указанными ранее в полученном файле cookie, клиент отправляет файлы cookie и их содержимое на сервер, если, конечно, срок их действия не истек.

    Многие приложения и серверы используют этот метод для соединения серии запросов в один логический сеанс. Чтобы иметь возможность использовать curl в таких случаях, мы должны иметь возможность записывать и отправлять файлы cookie так, как их ожидает веб-приложение. Точно так же с ними работают и браузеры.

    Параметры cookie

    Самый простой способ отправить несколько файлов cookie на сервер при получении страницы с помощью curl - это добавить их в командную строку, например:

      curl --cookie "name = Daniel" http://www.example.com
      

    Файлы cookie отправляются как обычные заголовки HTTP. Это практично, поскольку позволяет curl записывать файлы cookie, просто записывая заголовки.Запишите файлы cookie с помощью curl с помощью параметра --dump-header ( -D ), например:

      curl --dump-header headers_and_cookies http://www.example.com
      

    (Обратите внимание, что параметр --cookie-jar , описанный ниже, является лучшим способом хранения файлов cookie.)

    Curl имеет встроенный полнофункциональный механизм синтаксического анализа файлов cookie, который используется, если вы хотите повторно подключиться к серверу и использовать файлы cookie, которые были сохранены из предыдущего подключения (или вручную созданы вручную, чтобы обмануть сервер, чтобы он поверил, что у вас был предыдущий связь). Чтобы использовать ранее сохраненные файлы cookie, вы запускаете curl, например:

      curl --cookie stored_cookies_in_file http://www.example.com
      
    «Механизм cookie»

    Curl включается, когда вы используете параметр --cookie . Если вы хотите, чтобы curl распознавал полученные файлы cookie, используйте --cookie с файлом, который не существует. Например, если вы хотите, чтобы curl понимал файлы cookie со страницы и отслеживал местоположение (и, таким образом, возможно, отправлял полученные файлы cookie), вы можете вызвать его, например:

      curl --cookie nada - расположение http: // www.example.com
      

    Curl имеет возможность читать и записывать файлы cookie, которые используют тот же формат файлов, который когда-то использовали Netscape и Mozilla. Это удобный способ обмена файлами cookie между скриптами или вызовами. Переключатель --cookie ( -b ) автоматически определяет, является ли данный файл таким файлом cookie, и анализирует его, а с помощью параметра --cookie-jar ( -c ) вы делаете curl записывает новый файл cookie в конце операции:

      curl - печенье. txt --cookie-jar newcookies.txt http://www.example.com
      

    HTTPS - безопасный протокол HTTP

    Есть несколько способов сделать безопасную передачу HTTP. Безусловно, наиболее распространенный протокол для этого - так называемый HTTPS, HTTP через SSL. SSL шифрует все данные, которые отправляются и принимаются по сети, и, таким образом, затрудняет злоумышленникам слежку за конфиденциальной информацией.

    SSL (или TLS, как называется последняя версия стандарта) предлагает массу расширенных функций, позволяющих обеспечить все те механизмы шифрования и ключевые механизмы инфраструктуры, которые требуются для шифрования HTTP.

    Curl поддерживает зашифрованные выборки при создании для использования библиотеки TLS, и его можно построить для использования одной из довольно большого набора библиотек - curl -V покажет, какой из них был создан для использования вашего curl (если есть!). Чтобы получить страницу с HTTPS-сервера, просто запустите curl, например:

      curl https://secure. example.com
      

    Сертификаты

    В мире HTTPS вы используете сертификаты для подтверждения того, что вы тот, кем вы себя называете, в качестве дополнения к обычным паролям.Curl поддерживает сертификаты на стороне клиента. Все сертификаты заблокированы парольной фразой, которую необходимо ввести, прежде чем сертификат можно будет использовать в curl. Парольную фразу можно указать в командной строке или, если нет, ввести интерактивно, когда curl запрашивает ее. Используйте сертификат с curl на сервере HTTPS, например:

      curl --cert mycert.pem https://secure.example.com
      

    curl также пытается проверить, является ли сервер тем, кем он является, путем проверки сертификата сервера по локально сохраненному пакету сертификатов CA.Отсутствие проверки приведет к тому, что curl отклонит соединение. Затем вы должны использовать --insecure ( -k ) в случае, если вы хотите указать curl, чтобы он игнорировал, что сервер не может быть проверен.

    Подробнее о проверке сертификата сервера и пакетах сертификатов CA можно прочитать в документе SSLCERTS.

    Иногда у вас может получиться собственное хранилище сертификатов CA, и тогда вы можете указать curl использовать его для проверки сертификата сервера:

      curl --cacert ca-bundle.pem https://example.com/
      

    Изменить метод и заголовки

    Делая что-то необычное, вам может понадобиться добавить или изменить элементы одного запроса curl.

    Например, вы можете изменить POST-запрос на PROPFIND и отправить данные как Content-Type: text / xml (вместо Content-Type по умолчанию) следующим образом:

      curl --data "" --header "Content-Type: text / xml" --request PROPFIND example.com
      

    Вы можете удалить заголовок по умолчанию, указав заголовок без содержимого.Как будто вы можете испортить запрос, отрубив Host: header:

      curl --header "Хост:" http://www.example. com
      

    Точно так же можно добавлять заголовки. Вашему серверу может потребоваться заголовок Destination: , и вы можете добавить его:

      curl --header "Destination: http: // nowhere" http://example.com
      

    Подробнее об измененных методах

    Следует отметить, что curl самостоятельно выбирает, какие методы использовать, в зависимости от того, какое действие запрашивать. -d выполнит POST, -I выполнит HEAD и так далее. Если вы используете опцию --request / -X , вы можете изменить метод, который выбирает ключевое слово curl, но вы не измените поведение curl. Это означает, что если вы, например, используете -d «data» для выполнения POST, вы можете изменить метод на PROPFIND с -X , и curl все равно будет думать, что он отправляет POST. Вы можете изменить обычный GET на метод POST, просто добавив -X POST в командную строку, например:

      curl -X POST http: // example. org /
      

    ... но curl по-прежнему будет думать и действовать так, как если бы он отправил GET, поэтому он не будет отправлять тело запроса и т. Д.

    Некоторые приемы входа в систему

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

    Также можно отметить, что для того, чтобы сделать это правильно в автоматическом режиме, вам, безусловно, нужно будет создавать сценарии и выполнять несколько вызовов curl и т. Д.

    Во-первых, серверы в основном используют файлы cookie для отслеживания состояния входа клиента в систему, поэтому вам нужно будет фиксировать файлы cookie, которые вы получаете в ответах. Затем многие сайты также устанавливают специальный файл cookie на странице входа (чтобы убедиться, что вы попали туда через их страницу входа), поэтому вы должны иметь привычку сначала получать страницу формы входа для захвата установленных там файлов cookie.

    Некоторые веб-системы входа в систему содержат различное количество JavaScript, и иногда они используют такой код для установки или изменения содержимого файлов cookie.Возможно, они делают это для предотвращения запрограммированных входов в систему, как в этом руководстве описано, как ... В любом случае, если чтения кода недостаточно, чтобы позволить вам повторить поведение вручную, захват HTTP-запросов, выполняемых вашими браузерами, и анализ отправленных файлов cookie Обычно это рабочий метод, позволяющий решить, как сократить потребность в javascript.

    В фактическом теге

    для входа в систему многие сайты заполняют случайные / сеансные или иным образом секретно сгенерированные скрытые теги, и вам может потребоваться сначала захватить HTML-код для формы входа и извлечь все скрытые поля, чтобы иметь возможность выполнить правильный вход в систему POST.Помните, что содержимое должно быть закодировано в URL-адресе при отправке в обычном POST.

    Некоторые приемы отладки

    Много раз, когда вы запускаете curl на сайте, вы замечаете, что этот сайт не реагирует на ваши запросы curl так же, как на запросы вашего браузера.

    Затем вам нужно сделать ваши запросы curl более похожими на запросы вашего браузера:

    • Используйте параметр --trace-ascii для хранения полностью подробных журналов запросов для облегчения анализа и лучшего понимания

    • Убедитесь, что вы проверяете и используете файлы cookie при необходимости (как чтение с помощью --cookie , так и запись с помощью --cookie-jar )

    • Установите user-agent (с -A ) на один, как в недавнем популярном браузере

    • Установить реферер (с -E ), как в браузере

    • Если вы используете POST, убедитесь, что вы отправляете все поля и в том же порядке, что и браузер.

    Проверьте, что делают браузеры

    Очень хороший помощник, чтобы убедиться, что вы все делаете правильно, - это инструменты разработчика веб-браузеров, которые позволяют просматривать все отправленные и получаемые заголовки (даже при использовании HTTPS).

    Более грубый подход - захватить HTTP-трафик в сети с помощью таких инструментов, как Wireshark или tcpdump, и проверить, какие заголовки были отправлены и получены браузером. (HTTPS заставляет вас использовать для этого SSLKEYLOGFILE .)

    Как легко использовать cURL для HTTP-запросов

    Каждый разработчик должен знать множество инструментов, чтобы быть эффективным.cURL в одном из таких инструментов 😄

    В этой статье я объясню, как curl можно использовать для выполнения HTTP-запросов .

    cURL в основном используется для передачи данных с использованием интернет-протоколов для данного URL.

    Curl - это программа на стороне клиента. В имени cURL , c обозначает клиент, а URL указывает, что curl работает с URL.

    Проект curl имеет командную строку curl, а также библиотеку libcurl. В этой статье мы сосредоточимся на командной строке curl.

    Curl работает с множеством интернет-протоколов, таких как HTTP, FTP, SMTP, TELNET и так далее.

    В этой статье мы рассмотрим только HTTP-запросы от Curl.

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

    Если Curl отсутствует в вашей системе, вы можете установить его по этому URL-адресу https://curl.haxx.se/dlwiz/.

    Я построил 2 конечные точки REST API с помощью NodeJS. Одна конечная точка поддерживает запрос GET, а другая конечная точка поддерживает запрос POST.

    В этой статье мы будем вызывать конечные точки GET и POST с помощью Curl.

    Клонируйте код NodeJS в свой локальный из этого репозитория github

    В репозитории есть инструкции о том, как клонировать и запускать код NodeJS.

    После клонирования кода перейдите в папку проекта и запустите приложение, используя следующую команду.

    Приложение работает на локальном порту 3000.

    Запрос GET с cURL

    Приложение имеет конечную точку GET / образец .Эта конечная точка принимает параметр запроса с именем name .

    Назовем эту конечную точку API с помощью curl.

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

      curl http: // localhost: 3000 / sample? Name = aditya
      

    Это даст следующий результат

    Вы также можете получить подробный результат с помощью Curl. Выполните следующую команду

      curl -v http: // localhost: 3000 / sample? Name = aditya
      

    -v используется для получения подробного вывода.

    Это даст следующий результат.

      * Примерка :: 1 ...
    * TCP_NODELAY установлен
    * Пробуем 127.0.0.1 ...
    * TCP_NODELAY установлен
    * Подключен к localhost (127.0.0.1) порт 3000 (# 0)
    > ПОЛУЧИТЬ / образец? Name = aditya HTTP / 1.1
    > Хост: localhost: 3000
    > Пользовательский агент: curl / 7.55.1
    > Принять: * / *
    >
     

    Подробный результат содержит такие сведения, как код состояния, тип содержимого, длина содержимого и т. Д.Его можно использовать, чтобы лучше понять, что произошло во время HTTP-запроса.

    Код состояния - 200, что указывает на успешный HTTP-запрос.

    Тип содержимого ответа - JSON.

    Content-Length указывает размер ответа. Здесь размер ответа составляет 23 байта.

    Запрос POST с cURL

    Приложение имеет конечную точку POST / тест . Эта конечная точка принимает тело сообщения следующего формата.

    Чтобы выполнить вызов POST, введите следующую команду.

      curl --header "Content-Type: application / json" -d "{\" value \ ": \" node JS \ "}" http: // localhost: 3000 / test
      

    –header указывает тип содержимого тела сообщения. Вот это JSON.

    -d используется для отправки содержимого тела сообщения.

    Результат этой команды показан ниже.

      {"text": "Значение пост-запроса - узел JS"}
      

    Чтобы получить подробный результат, используйте следующую команду

      curl -v --header "Content-Type: application / json" -d "{\" value \ ": \" node JS \ "}" http: / / локальный: 3000 / тест
      

    Результат показан ниже.

      * Примерка :: 1 ...
    * TCP_NODELAY установлен
    * Пробуем 127.0.0.1 ...
    * TCP_NODELAY установлен
    * Подключен к localhost (127.0.0.1) порт 3000 (# 0)
    > POST / тест HTTP / 1.1
    > Хост: localhost: 3000
    > Пользовательский агент: curl / 7.55.1
    > Принять: * / *
    > Тип содержимого: приложение / json
    > Длина содержимого: 19
    >
    * загрузка полностью отправлена: 19 байт из 19
     

    Дополнительные параметры, предоставляемые командной строкой

    Существующие заголовки можно изменить с помощью параметра -H .

    Выполните следующую команду, чтобы изменить заголовок User-Agent на Dummy Agent

      curl -v -H "User-Agent: Dummy Agent" http: // localhost: 3000 / sample? Name = adi
      

    Результат выполнения вышеуказанной команды показан ниже

      * Попытка :: 1 . ..
    * TCP_NODELAY установлен
    * Пробуем 127.0.0.1 ...
    * TCP_NODELAY установлен
    * Подключен к localhost (127.0.0.1) порт 3000 (# 0)
    > ПОЛУЧИТЬ / образец? Name = adi HTTP / 1.1
    > Хост: localhost: 3000
    > Принять: * / *
    > Пользовательский агент: фиктивный агент
    >
     

    Из приведенных выше выходных данных видно, что User-Agent стал Dummy Agent .

    Теперь предположим, что вы хотите удалить заголовок Host . Это можно сделать, выполнив следующую команду.

      curl -v -H "Хост:" http: // localhost: 3000 / sample? Name = adi
      

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

      * Trying :: 1... 
    * TCP_NODELAY установлен
    * подключиться к :: 1 порт 3000 не удалось: соединение отклонено
    * Пробуем 127.0.0.1 ...
    * TCP_NODELAY установлен
    * Подключен к localhost (127.0.0.1) порт 3000 (# 0)
    > ПОЛУЧИТЬ / образец? Name = adi HTTP / 1.1
    > Пользовательский агент: curl / 7.55.1
    > Принять: * / *
    >
     

    -H также можно использовать для добавления новых заголовков.Это можно сделать с помощью синтаксиса curl -v -H "newheader: headervalue"

    Документация cURL: https://ec.haxx.se/

    Дополнительная информация об использовании Curl для HTTP-запросов https: // ec. haxx.se/http.html

    Теперь вы знаете, как использовать cURL для базовых HTTP-запросов. В этой статье рассказывается очень небольшая часть того, на что на самом деле способны завитки.

    Чтобы узнать больше о curl, вы можете проверить ссылки на документацию, которые я предоставил выше.

    Не стесняйтесь связаться со мной в LinkedIn или подписаться на меня в Twitter

    Как использовать curl | ShipEngine

    Все примеры в документации ShipEngine включают пример команды curl.Бесплатная программа командной строки с открытым исходным кодом curl уже установлена ​​в большинстве операционных систем.

    СОВЕТ Чтобы узнать, установлен ли у вас curl, откройте терминал и введите curl --version .
    Если он установлен, вы увидите номер версии и включенные функции.

    Учебные ресурсы

    Найдите множество отличных ресурсов в собственной документации curl, включая это отличное руководство по написанию сценариев. Кроме того, в Nordic API есть информативное руководство по некоторым скрытым возможностям curl.

    Выполнение примеров curl в терминале

    Поскольку curl уже установлен на большинстве компьютеров, вы можете скопировать образец кода прямо из нашей документации и вставить его в свой терминал, чтобы отправить вызов API ShipEngine.

    Попробуйте этот образец, который возвращает вашу последнюю созданную транспортную этикетку:

      curl -iX GET https://api.shipengine.com/v1/labels?page_size=1 \
    -H 'API-ключ: __YOUR_API_KEY_HERE__'
      
      curl -iX GET https: //api.shipengine.com / v1 / labels? page_size = 1 \
    -H 'API-ключ: __YOUR_API_KEY_HERE__'
      

    ПРИМЕЧАНИЕ Если вы вошли в ShipEngine, образцы кода будут включать ваш ключ API песочницы.
    У вас еще нет ключа API? Перейдите на панель управления ShipEngine, чтобы получить его.

    Примеры выполнения завитков в Postman

    Если вам неудобно использовать curl в терминале или вы просто предпочитаете приложения с графическим интерфейсом, Postman - отличный выбор. Postman даже позволяет импортировать команды curl, поэтому вы можете скопировать любые образцы curl из документации ShipEngine (например, приведенный выше) и вставить их в Postman.

    Шаг 1.

    Импорт curl

    Нажмите кнопку Импорт на панели инструментов Postman, чтобы открыть диалоговое окно Импорт.

    В окне импорта щелкните вкладку Вставить необработанный текст , которая покажет вам большое текстовое поле, в которое вы можете вставить команду curl.

    После вставки команды curl нажмите кнопку Import в нижней части окна журнала, и Postman автоматически преобразует команду curl в запрос Postman.

    Шаг 2: Отправьте запрос

    Импорт команды curl создаст новую вкладку запроса в главном окне Postman. Запрос уже будет заполнен URL-адресом, заголовками, параметрами запроса, телом запроса и другой информацией из команды curl. Итак, все, что вам нужно сделать, это нажать кнопку Отправить .

    Ответ будет отображаться в правой или нижней половине экрана, в зависимости от того, настроен ли Postman в вертикальном или горизонтальном расположении.

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

    Curl обычно считается неинтерактивным веб-браузером. Это означает, что он может извлекать информацию из Интернета и отображать ее на вашем терминале или сохранять в файл. Это буквально то, что делают веб-браузеры, такие как Firefox или Chromium, за исключением того, что они отображают информацию по умолчанию, в то время как curl загружает и отображает необработанную информацию. На самом деле команда curl делает гораздо больше и может передавать данные на сервер или с сервера, используя один из множества поддерживаемых протоколов, включая HTTP, FTP, SFTP, IMAP, POP3, LDAP, SMB, SMTP и многие другие.Это полезный инструмент для среднего пользователя терминала, жизненно важное удобство для системного администратора и инструмент обеспечения качества для микросервисов и разработчиков облачных вычислений.

    Curl разработан для работы без взаимодействия с пользователем, поэтому, в отличие от Firefox, вы должны от начала до конца продумывать свое взаимодействие с онлайн-данными. Например, если вы хотите просмотреть веб-страницу в Firefox, вы запускаете окно Firefox. После открытия Firefox вы вводите веб-сайт, который хотите посетить, в поле URL-адреса или в поисковой системе.Затем вы переходите на сайт и нажимаете на страницу, которую хотите увидеть.

    Те же концепции применимы к curl, за исключением того, что вы делаете все сразу: вы запускаете curl в то же время, когда вы вводите его в нужное место в Интернете, и сообщаете ему, хотите ли вы, чтобы данные были сохранены в вашем терминале или в файл. Сложность возрастает, когда вам нужно взаимодействовать с сайтом, требующим аутентификации, или с API, но как только вы изучите синтаксис команды curl , это станет вашей второй натурой. Чтобы помочь вам разобраться в этом, мы собрали соответствующую информацию о синтаксисе в удобной памятке.

    Скачать файл с curl

    Вы можете загрузить файл с помощью команды curl , указав ссылку на определенный URL. Если вы предоставите URL-адрес, который по умолчанию равен index.html , то страница индекса будет загружена, а загруженный вами файл отобразится на экране вашего терминала. Вы можете перенаправить вывод в less или tail или любую другую команду:

     

    $ curl "http://example.com" | tail -n 4

    Пример домена


    Этот домен предназначен для использования в иллюстративных примерах в документах.Вы можете использовать этот домен в литературе без предварительного согласования или запроса разрешения.


    Дополнительная информация ...


    Поскольку некоторые URL-адреса содержат специальные символы, которые обычно интерпретирует ваша оболочка, безопаснее всего заключать URL-адрес в кавычки.

    Некоторые файлы не могут быть отображены в терминале. Вы можете использовать опцию --remote-name , чтобы файл сохранялся в соответствии с тем, как он вызывается на сервере:

     

    $ curl --remote-name "https: // example.com / linux-distro.iso "
    $ ls
    linux-distro.iso

    В качестве альтернативы вы можете использовать параметр --output , чтобы присвоить загрузке любое имя:

      curl "http://example. com/foo.html" --output bar.html  

    Вывести список содержимого удаленного каталога с помощью curl

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

      $ curl --list-only "https: // example.com / foo / " 

    Продолжить частичную загрузку

    Если вы загружаете очень большой файл, вы можете обнаружить, что вам нужно прервать загрузку. Curl достаточно умен, чтобы определить, где вы остановились, и продолжить загрузку. Это означает, что в следующий раз, когда вы загрузите ISO-образ дистрибутива Linux объемом 4 ГБ и что-то пойдет не так, вам больше не придется возвращаться к началу. Синтаксис для --continue-at немного необычен: если вы знаете счетчик байтов, на котором ваша загрузка была прервана, вы можете указать его; в противном случае вы можете использовать одиночное тире ( - ), чтобы указать curl, чтобы он обнаруживал его автоматически:

      $ curl --remote-name --continue-at - "https: // example. com / linux-distro.iso " 

    Скачать последовательность файлов

    Если вам нужно загрузить несколько файлов, а не один большой, curl может с этим помочь. Предполагая, что вы знаете расположение и шаблон имен файлов, которые хотите загрузить, вы можете использовать нотацию последовательности curl: начальная и конечная точки между диапазоном целых чисел в скобках. В качестве имени выходного файла используйте # 1 , чтобы указать первую переменную:

      $ curl "https://example.com/file_[1-4].webp "--output" file_ # 1.webp " 

    Если вам нужно использовать другую переменную для представления другой последовательности, обозначьте каждую переменную в том порядке, в котором она появляется в команде. Например, в этой команде # 1 относится к каталогам с images_000 с по images_009 , а # 2 относится к файлам с file_1.webp с по file_4. webp :

     

    $ curl "https://example.com/images_00[0-9 visible/file_[1-4 visible.webp" \
    --output "file_ # 1- # 2.webp "

    Скачать все PNG файлы с сайта

    Чтобы найти то, что вы хотите загрузить, можно выполнить элементарную очистку веб-страниц, используя только curl и grep . Например, предположим, что вам нужно загрузить все изображения, связанные с архивируемой веб-страницей. Сначала загрузите страницу со ссылками на изображения. Перенаправьте страницу в grep, выполнив поиск нужного типа изображения (в данном примере PNG). Наконец, создайте цикл и , чтобы создать URL-адрес загрузки и сохранить файлы на свой компьютер:

     

    $ curl https: // пример."] *. [png]" '| \
    cut -d \ "-f2 | \
    при чтении i; do \
    curl https://example.com/"${i}" -o "$ {i ## * /} "; \
    выполнено

    Это всего лишь пример, но он демонстрирует, насколько гибким может быть curl в сочетании с конвейером Unix и некоторым умным, но базовым синтаксическим анализом.

    Протоколы, используемые для обмена данными, содержат множество метаданных, встроенных в пакеты, которые компьютеры отправляют для связи. Заголовки HTTP - это компоненты начальной части данных. При устранении неполадок подключения к сайту может быть полезно просмотреть эти заголовки (особенно код ответа):

     

    curl --head "https: // example.com "
    HTTP / 2 200
    accept-range: байты
    age: 485487
    cache-control: max-age = 604800
    content-type: text / html; charset = UTF-8
    date: Sun, 26 Apr 2020 09 : 02: 09 GMT
    etag: "3147526947"
    истекает: вс, 3 мая 2020 г., 09:02:09 GMT
    последнее изменение: чт, 17 октября 2019 г., 07:18:26 GMT
    сервер: ECS (sjc / 4E76)
    x-cache: HIT
    длина содержимого: 1256

    Быстрая ошибка

    Ответ 200 - это обычный HTTP-индикатор успеха, так что это то, что вы обычно ожидаете при обращении к серверу.Известный ответ 404 указывает, что страница не может быть найдена, а 500 означает, что произошла ошибка сервера.

    Чтобы увидеть, какие ошибки происходят во время согласования, добавьте флаг --show-error :

      $ curl --head --show-error "http://opensource.ga"  

    Это может быть сложно исправить, если у вас нет доступа к серверу, с которым вы связываетесь, но curl обычно изо всех сил пытается определить местоположение, на которое вы указываете. Иногда при тестировании по сети кажущиеся бесконечными попытки просто тратят время, поэтому вы можете принудительно завершить работу curl в случае сбоя с помощью опции --fail-early :

      curl --fail-early "http: // opensource.ga " 

    Запрос перенаправления, как указано в ответе 3xx

    Серия ответов 300, однако, более гибкая. В частности, ответ 301 означает, что URL-адрес был навсегда перемещен в другое место. Это распространенный способ для администратора веб-сайта перемещать контент, оставляя «след», чтобы люди, посещающие старое место, все еще могли его найти. Curl по умолчанию не выполняет 301 редирект, но вы можете заставить его перейти к месту назначения 301, используя параметр --location :

     

    $ curl "https: // iana.org "| grep title
    301 перемещено навсегда
    $ curl --location" https://iana.org "
    Internet Assigned Numbers Authority

    Раскрыть сокращенный URL-адрес

    Параметр --location полезен, если вы хотите просмотреть сокращенные URL-адреса перед их посещением. Сокращенные URL-адреса могут быть полезны для социальных сетей с ограничениями на количество символов (конечно, это может не быть проблемой, если вы используете современную социальную сеть с открытым исходным кодом) или для печатных СМИ, в которых пользователи не могут просто скопировать и вставить длинный URL-адрес.Однако они также могут быть немного опасными, потому что их пункт назначения по своей природе скрыт. Комбинируя опцию --head для просмотра только заголовков HTTP и опцию --location для определения конечного назначения URL-адреса, вы можете заглянуть в сокращенный URL-адрес, не загружая весь ресурс:

     

    $ curl --head --location \
    "https://bit.ly/2yDyS4T"

    Когда вы попрактикуетесь думать о процессе исследования сети как о единой команде, curl станет быстрым и эффективным способом извлечения необходимой информации из Интернета, не беспокоясь о графическом интерфейсе.Чтобы помочь вам встроить его в свой обычный рабочий процесс, мы создали шпаргалку по curl с распространенными вариантами использования и синтаксисом curl, включая обзор ее использования для запроса API.

    Используйте curl для взаимодействия с API

    Curl обычно называют неинтерактивным веб-браузером для терминала Linux. Однако его разработчики описывают его более точно как инструмент для передачи данных на сервер или с сервера с доступом к огромному количеству протоколов, включая HTTP, FTP, SFTP, SCP, IMAP, POP3, LDAP, SMB, SMTP и многое другое.

    Это полезный инструмент для обычного системного администратора, независимо от того, используете ли вы его как быстрый способ загрузки нужного файла из Интернета или как сценарий автоматических обновлений. Curl также является важным инструментом для тестирования удаленных API. Если служба, на которую вы полагаетесь или предоставляете, не отвечает, вы можете использовать команду curl для ее проверки.

    API

    Термин API является сокращением от Application Programming Interface . API - это все, что выполняет определенные действия или отвечает на запросы информации, предоставляемые конечными пользователями.Это мощное средство абстракции, которое может быть разницей между предоставлением кому-то, например, доступа к вашему серверу базы данных, и просто предоставлением людям возможности запрашивать информацию из вашей базы данных через высоко структурированный URL.

    API также позволяет людям использовать функции службы, не требуя от них изучения сложных команд или раскрытия конфиденциальных данных.

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

    Установка curl

    Вполне вероятно, что у вас уже установлено curl . Если он у вас не установлен, он, вероятно, находится в вашем репозитории программного обеспечения.

    В Fedora, CentOS или RHEL введите:

      $ sudo dnf установить curl  

    Основы Curl

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

    Вы можете направить вывод на минус или tail или любую другую команду, которую сочтете полезной.

      $ curl "http://example.com" | хвост -n 4
     

    Пример домена

    Этот домен предназначен для использования в иллюстративных примерах в документах. Вы можете использовать этот домен в литературе без предварительного согласования или запроса разрешения.

    Дополнительная информация…