Что такое curl: Что такое CURL?

Содержание

Что Такое Curl и Как работает Эта Команда

VPS

Дек 08, 2020

Olha L.

4хв. читання

Что такое 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 на стороне клиента.

Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.

К предложению

Оглавление

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

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

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

curl --version

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

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

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

curl [OPTIONS] [URL]

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

curl testdomain.com

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

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

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

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

Вот пример:

curl -O http://testdomain.com/testfile.tar.gz

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

curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz

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

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

curl -C - -O  http://testdomain.com/testfile.tar.gz

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

curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz

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

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

xargs –n 1 curl -O < allUrls.txt

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

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

curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz

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

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

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

curl -I www.testdomain.com

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

curl http://mydomain.com

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

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

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

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

curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp

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

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

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

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

curl -I http://mydomain. com –-user-agent “My new Browser”

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

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Команда Curl и Cookies

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

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

curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O

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

curl --cookie Mycookies.txt https://www. samplewebsite.com

Curl и FTP

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

curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz

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

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

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

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

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

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

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

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Выводы

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

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

man curl

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

Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.

Більше статей від Olha L.

Что такое cURL, вопросы и ответы

Что такое cURL?

cURL — это название проекта, (и игра слов, в английском языке curl — завиток). Далее четыре расшифровки каждая следующая, все интереснее и интереснее, закручивается.

  • Название представляет собой аббревиатуру Client for URLs, «Клиент для URL-адресов», изначально URL-адрес написан в верхнем регистре, чтобы было очевидно, что мы имеем дело с URL-адресами.
    URL это аббревиатура, которая расшифровывается как Uniform Resource Locator, или «унифицированный указатель ресурса», т.е. адрес сайта размещенного в сети Интернет.
  • Также, можно прочитать как «сии УРЛ» — смотреть URL«, то есть ‘see URL’, первая буква «с«, читается как «see«, перевод этого слова на русский язык «смотреть».
  • Ещё вариант, сокращение от «Client URL Request Library» — «Библиотека запросов URL-адресов клиентов»
  • И вишенка на торте, рекурсивная версия (версия которая содержит саму себя) — «curl URL Request Library» или «Библиотека запросов URL-адресов curl»

Данная статья перевод FAQ с сайта https://curl. se/

Проект cURL это два продукта:

libcurl

Библиотека передачи URL-адресов на стороне клиента, поддерживающая DICT, ФАЙЛ, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTP, TELNET и TFTP. Библиотекаэто набор заранее определённых функций, из которых, как из кирпичиков, можно складывать то, что нам нужно.

libcurl поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, загрузку по FTP, Kerberos, SPNEGO, загрузку на основе HTTP-форм, прокси-серверы, файлы cookie, аутентификацию пользователя + пароль, возобновление передачи файлов, туннелирование http-прокси и многое другое.

libcurl обладает высокой переносимостью, он создается и одинаково работает на многих платформах, включая Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HP-UX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, macOS, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS, Symbian, OSF, Android, Minix, IBM TPF и многое другое. ..

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

cURL

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

Поскольку curl использует libcurl, curl поддерживает тот же широкий спектр распространенных интернет-протоколов, что и libcurl.

Мы произносим curl с начальным звуком k. Оно рифмуется с такими словами, как girl «девушка» и earl «граф». Это короткий WAV-файл, который поможет вам:

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

Что такое libcurl?

libcurl — это надежная и портативная библиотека для передачи данных через Интернет с использованием одного или нескольких поддерживаемых ею интернет-протоколов.

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

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

Чем не является curl?

  • curl не является клоном wget. Это распространенное заблуждение. Никогда, во время разработки curl, мы не предполагали, что curl заменит wget или будет конкурировать на его рынке. curl предназначен для однократной передачи файлов.
  • curl не является программой зеркального отображения веб-сайтов. Если вы хотите использовать curl для отражения чего-либо: отлично, продолжайте и напишите сценарий, который обертывается вокруг curl, или используйте libcurl, чтобы воплотить его в реальность.
  • curl не является программой зеркального отображения FTP-сайтов. Конечно, получайте и отправляйте FTP с помощью curl, но если вы хотите систематического и последовательного поведения, вам следует написать скрипт (или написать новую программу, которая взаимодействует с libcurl) и сделать это.
  • curl не является инструментом PHP, хотя он отлично работает при использовании с PHP или с PHP (при использовании модуля PHP /CURL).
  • curl — это не программа для одной операционной системы. curl существует, компилируется, строится и работает под широким спектром операционных систем, включая все современные Unix (и много старых тоже), Windows, Amiga, OS / 2, macOS, QNX и т.д.

Когда вы доработаете curl делать xxxx?

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

  • curl — инструмент командной строки — должен оставаться неграфическим инструментом командной строки. Если вам нужны графические интерфейсы или необычные возможности написания сценариев, вам следует поискать другой инструмент, использующий libcurl.
  • Мы не добавляем в curl то, что другие небольшие и доступные инструменты уже хорошо делают на стороне. вывод curl может быть передан в другую программу или перенаправлен в другой файл для интерпретации следующей программой.
  • Мы фокусируемся на вопросах и улучшениях, связанных с протоколом. Если вы хотите сделать больше волшебства с поддерживаемыми протоколами, чем в настоящее время делает curl, велика вероятность, что мы согласимся. Если вы хотите добавить больше протоколов, мы можем согласиться.
  • Если вы хотите, чтобы кто-то другой выполнил всю работу, пока вы ждете, пока мы выполним ее за вас, это не дружелюбное отношение. Мы уже тратим значительное время на поддержание и развитие curl. Чтобы получить от нас больше, вам следует подумать о том, чтобы взамен потратить часть своего времени и усилий. Просто перейдите в репозиторий GitHub, который находится по адресу https://github.com/curl/curl , разветвляйте проект и создавайте запросы на коммит с предлагаемыми вами изменениями.
  • Если вы напишете код, то больше шансов, что он быстрее попадет в curl.

Кто делает curl?

  • curl и libcurl не созданы каким-либо отдельным человеком. Дэниел Стенберг является руководителем проекта и главным разработчиком, но материалы других людей важны и имеют решающее значение. Любой желающий может внести свой вклад и опубликовать свои изменения и улучшения, а также включить их в основные источники (конечно, при условии, что разработчики согласны с тем, что исправления хороши).
  • Полный список всех участников можно найти в файле docs/СПАСИБО.
  • curl разработан сообществом, за рулем которого стоит Дэниел.

Что вы получаете за создание curl?

Проект cURL полностью бесплатный и открытый. Мы делаем это добровольно, в основном в свободное время. Компании могут платить отдельным разработчикам за работу над curl. Это никоим образом не контролируется и не контролируется проектом curl.

Мы получаем помощь от компаний. Haxx предоставляет веб-сайт, пропускную способность, списки рассылки и т.д., На GitHub размещен основной репозиторий git и другие сервисы, такие как отслеживание ошибок на https://github.com/curl/curl . Кроме того, опять же, некоторые компании спонсировали определенные части разработки в прошлом, и я надеюсь, что некоторые продолжат это делать в будущем.

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

Смотрите также: https://curl.se/sponsors.html

Как насчет curl от curl.com ?

В течение лета 2001 года, curl.com был занят рекламой своего клиентского языка программирования для Интернета под названием CURL.

Мы никоим образом не связаны с curl.com или их язык программирования CURL.

Название нашего проекта curl эффективно используется с 1998 года. Мы не были первым компьютерным проектом, использующим название «curl», и не претендуем на какие-либо права на это название.

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

У меня проблема, кому мне отправлять почту?

Пожалуйста, не отправляйте письма ни одному отдельному лицу, если вам это действительно не нужно. Сохраняйте вопросы, связанные с curl, в подходящем списке рассылки. Все доступные списки рассылки перечислены в документе РУКОВОДСТВА и в Интернете по адресу https://curl. se/mail/

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

Если вы обнаружили или просто подозреваете проблему безопасности в curl или libcurl, отправьте все подробности по адресу https://hackerone.one/curl . Там мы сохраняем проблему в тайне, пока расследуем, подтверждаем ее, работаем и проверяем исправление, согласовываем график публикации и т.д. Таким образом, мы своевременно производим исправление до того, как об ошибке будет объявлено всему миру, снижая риск возникновения проблемы для существующих пользователей.

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

Где я могу заказать коммерческую поддержку для curl?

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

  • Мы перечисляем доступные варианты на веб-сайте curl: https://curl.se/support.html

Сколько пользователей curl?

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

Почему вы не обновляете ca-bundle.crt

В проекте cURL мы решили не пытаться обновлять этот файл (или даже представлять), поскольку решение о том, что добавить в пакет сертификатов ca, — это обязательство, которое мы не были готовы принять, и то, что мы можем получить от Mozilla, прекрасно, поэтому нет необходимости дублировать эту работу.

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

Если вам нужна самая последняя коллекция сертификатов ca, которую использует Mozilla Firefox, мы рекомендуем вам самостоятельно извлечь коллекцию из Mozilla Firefox (выполнив команду «создать ca-пакет») или с помощью нашей настройки онлайн-сервиса для этой цели: https://curl.se/docs/caextract.html

У меня проблема, с кем я могу пообщаться?

На канале #curl в IRC-сети libera.chat тусуется много дружелюбных людей. Если вы вежливы и милы, велика вероятность, что вы сможете получить — или оказать — помощь мгновенно.

Какой номер ECCN curl ?

Правительство США ограничивает экспорт программного обеспечения, содержащего или использующего криптографию. При этом Классификационный номер экспортного контроля (ECCN) используется для определения уровня экспортного контроля и т. д.

Apache Software Foundation дает хорошее объяснение ECCNS на https://www.apache.org/dev/crypto.html

https://curl.se/docs/faq.html#What_is_cURL

  • Кодируем сайт
  • Код машин

Что такое cURL и как его использовать?

Прокси-серверы

Соединенные Штаты Америки

Великобритания

Япония

Канада

Германия

Посмотреть все местоположения

Статус сетиКарьера 9000 3

Назад к блогу

Учебные пособия

Adomas Sulcas

09.09.2020 215 мин чтения

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

cURL поддерживает почти все интернет-протоколы (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS , SMTP, SMTPS, TELNET и TFTP).

История cURL

Еще в темные времена 90-х, когда все еще пользовались инструментами командной строки, Даниэль Стерберг хотел разработать простой сценарий IRC, который конвертировал бы валюты для участников чата. В 1997 году было не так много вариантов для создания основы для доставки данных по интернет-протоколу, поэтому Httpget, несколько сотен строк кода для передачи на основе HTTP, стал генезисом для cURL. cURL HTTP был впервые назван в честь своего основания HTTPGET 1.0.

Несколько месяцев спустя была разработана поддержка FTP, и от имени пришлось отказаться. Теперь он назывался urlget 2.0. После нескольких обновлений, 30 марта 1998 г. , имя было снова изменено на уже хорошо известное cURL 3.0.

У cURL есть старший брат — wget. Мы не будем вдаваться в подробности, но основное различие между wget и cURL заключается в возможностях загрузки каждого из них, поскольку первый может, например, восстановиться после прерванной передачи и продолжить загрузку файлов.

Что делает cURL?

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

Примером использования cURL является отладка. Использование «curl -v https://oxylabs.io» показывает подробный вывод одного запроса на подключение, включая такие сведения, как пользовательский агент, данные рукопожатия, порты и т. д.

Существует слишком много возможных параметров команды cURL, чтобы их можно было перечислить. и объяснить. К счастью, «curl –help» — это параметр, в котором перечислены все возможности параметров команды cURL с краткими пояснительными комментариями. Хотя без каких-либо знаний о том, как использовать cURL, список будет не таким уж полезным.

Как использовать cURL?

Почти любой человек с относительно новой операционной системой может использовать cURL, поскольку он поставляется по умолчанию в Windows, MacOS и большинстве дистрибутивов Linux. Для более старых систем, таких как любая операционная система Windows до 10, может потребоваться загрузка и установка cURL.

Чтобы использовать cURL, просто откройте терминал и введите «curl». Если все в порядке, вывод должен предложить использовать «curl –help». «Помощь», как упоминалось ранее, перечислит все возможности команды. Команду cURL можно объединить, добавив перечисленные флаги и введя URL-адрес. Флаги могут быть как короткими (например, -o, -L и т. д.), так и длинными (например, –verbose). Эти флаги различаются использованием одинарных или двойных дефисов.

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

cURL — это мощный инструмент для передачи данных через интернет-протоколы. Детальное описание всех возможных вариантов использования cURL было бы практически невозможным. Хотя есть несколько распространенных вариантов использования, которые мы рассмотрим подробнее. Поскольку cURL изначально разрабатывался для HTTP, мы можем отправлять все обычные запросы (POST, GET, PUT и т. д.).

Отправка запросов GET

Чтобы отправить запрос GET с использованием cURL, нам нужно будет использовать команду curl из командной строки или терминала, за которой следует URL-адрес веб-сайта. Например, чтобы отправить запрос GET на URL-адрес «https://ip.oxylabs.io», нам нужно будет использовать следующую команду:

 curl https://ip.oxylabs.io 

Как только мы запустим эту команду, она отправит запрос GET на веб-сайт: ip.oxylabs.io. И распечатайте ответ в терминале. Если он работает успешно, мы увидим наш текущий IP-адрес в качестве вывода.

Отправка POST-запроса

Для отправки POST-запроса на URL-адрес используется флаг -d (или –data). Большинство веб-сайтов будут отклонять такие запросы от неавторизованных пользователей, поэтому мы будем использовать поддельный API для целей тестирования.

 Curl-d "name=something&value=somethingelse"https://jsonplaceholder.typicode.com/posts/ 

Отправка такого запроса должна вернуть:

 {
  "имя": "что-то",
  "значение": "что-то еще",
  "идентификатор": 101
} 

Здесь есть несколько моментов:

  • curl начинает нашу команду

  • -d — флаг «данные» для запросов POST

  • Кавычки («») начинают наше содержание. Обратите внимание, что некоторые операционные системы принимают только одинарные кавычки, другие — двойные.

  • Наконец, пункт назначения. Синтаксис URL всегда должен быть точным, поскольку cURL не следует автоматически за перенаправлениями

Мы также можем отправлять POST-запросы в формате JSON, хотя потребуются дополнительные параметры, чтобы сообщить серверу, что мы отправляем JSON. cURL мало интерпретирует от имени пользователя и отправляет заголовок Content-Type по умолчанию application/text , поэтому мы должны добавить заголовок Content-Type: application/json сами .

 curl -H "Content-Type: application/json" --data "{\"data\":\"some data\"}" https://jsonplaceholder.typicode.com/posts/ 

Сохранение содержимого URL в файл

Curl также позволяет скачивать и загружать файлы в локальное хранилище. Процесс довольно прост. Нам просто нужно будет передать пару дополнительных параметров. Допустим, мы хотим сохранить наш IP-адрес в текстовом файле с веб-сайта https://ip.oxylabs.io.

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

 curl -o response.txt https://ip.oxylabs.io 

Обратите внимание, что мы передаем новый аргумент -o, который является краткой формой —output. Мы также упоминаем имя файла response.txt. Как только мы выполним эту команду, curl сделает новый запрос на веб-сайт и соберет наш IP-адрес, а затем загрузит его в текущую папку, создав новый файл response. txt. Если файл уже существует, он будет перезаписан новым содержимым.

После перенаправлений

cURL не следует автоматически за перенаправлениями. Мы должны добавить дополнительный флаг, если мы ожидаем, что это произойдет. Рассмотрим пример:

 curl https://google.com 

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

 curl -L https://google.com 

Теперь мы должны были получить обычный ответ от Google, поскольку cURL следует за перенаправлением с https://google.com на https://www.google.com/.

Подключение через прокси

cURL можно использовать для подключения к любому месту назначения через прокси. Как и в случае любого другого оператора cURL, URL-адрес, синтаксис и все остальное остаются прежними, за исключением добавленного флага и его атрибутов.

 curl --proxy proxyaddress:port https://jsonplaceholder.typicode.com/ 

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

 curl --proxy proxy:port -U «имя пользователя:пароль» https://jsonplaceholder.typicode.com/ 

Некоторые веб-сайты сами требуют метод аутентификации, прежде чем они примут любой запрос на подключение. Аналогичный флаг используется для аутентификации сервера: «-u».

 curl -u имя пользователя:пароль https://jsonplaceholder.typicode.com/ 

Подробнее о cURL с прокси можно прочитать в нашем блоге. Кроме того, если вы ищете надежное и быстрое прокси-решение, ознакомьтесь с нашими резидентными прокси.

Зачем использовать cURL?

cURL не только поддерживает несколько протоколов, включая HTTP, HTTPS и DICT (сетевой протокол словаря), но также работает практически на каждой отдельной платформе. В результате cURL становится оптимальным выбором при тестировании связи практически с любого устройства. Единственными требованиями являются наличие командной строки и сетевого подключения.

Тем не менее, преимущества cURL выходят за рамки коммуникативного тестирования, как вы увидите из приведенного ниже краткого списка.

  • Скорость cURL может быть ограничена

  • Это уникальный портативный вариант, поскольку он совместим с большинством операционных систем и подключенных устройств

  • Позволяет легко тестировать конечные точки, чтобы проверить, работают ли они

  • 900 80

    cURL отлично регистрирует ошибки

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

Заключение

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

Хотите узнать больше по интересным темам, например, как работает CAPTCHA? Просмотрите наш блог, так как у нас есть много сообщений, которые мы можем предложить!

Об авторе

Адомас Сулькас

Руководитель группы по связям с общественностью

Адомас Сулкас — руководитель группы по связям с общественностью в Oxylabs. Выросший в семье, ориентированной на технологии, он быстро проявил интерес ко всему, что связано с ИТ и Интернетом. Когда он не болтается в Интернете или не погружается в чтение, вы найдете его в приключении или придумывает злые бизнес-идеи.

Узнайте больше об Adomas Sulcas

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

Статьи по теме

Учебники

Как отправлять POST запросы с помощью cURL

Елизавета Нечитайло

2023-06-09

Учебники Сбор данных 900 03

Как отправлять запросы GET с помощью cURL

Ивета Висторските

2023-06 -09

Учебные пособия Сбор данных

Как очищать карты Google: подробное руководство

Даниэлюс Радавичюс

2023-06-09

Получайте последние новости из мира сбора данных

Мне интересно

В ЭТОЙ СТАТЬЕ:


  • Что делает cURL?


  • Как использовать cURL?


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


  • Зачем использовать cURL?


  • Заключение

Забудьте о сложных процессах парсинга веб-страниц

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

Что такое cURL?: Полное руководство

Интерфейсы прикладного программирования (API) являются неотъемлемой частью Интернета. Эти инструменты позволяют взаимодействовать с другими платформами.

Например, вы можете использовать Twitter API для публикации твитов или отображения списка твитов на вашей временной шкале. Вы можете использовать API Airtable для доступа к своим электронным таблицам в Airtable и добавления новых записей. Но как вы на самом деле взаимодействуете с API?

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

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

Что такое cURL?

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

cURL устанавливается в большинстве операционных систем на основе UNIX, поэтому, если вы не используете Apple II, то, вероятно, у вас уже установлен пакет. Когда вы используете cURL в качестве команды, вам не нужно использовать термин с большой буквы: просто используйте команду завиток .

Как сделать запрос с помощью cURL

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

API Airtable предоставляет два варианта взаимодействия с их API: cURL или JavaScript. Конечно, в этом уроке мы сосредоточимся на параметре cURL.

Сделать запрос GET с использованием cURL

Чтобы сделать веб-запрос cURL, нам нужно только указать «curl», а затем URL-адрес, который мы хотим получить. Если мы хотим сделать веб-запрос GET к API Airtable, мы можем использовать эту команду:

 curl "https://api.airtable.com/v0/appiTz7oLBs9hDIFg/Tracker?maxRecords=3&view=Grid%20view" 

При выполнении этой команды возвращается следующее:

 {"ошибка":{"тип":"AUTHENTICATION_REQUIRED","message":"Требуется аутентификация"}} 

Наша команда cURL успешно выполнила веб-запрос! Проблема в том, что мы еще не указали ключ API, который мы должны использовать для аутентификации. Для этого мы собираемся следовать инструкциям API Airtable и указать заголовок «авторизации»:

 curl "https://api.airtable.com/v0/appiTz7oLBs9hDIFg/Tracker?maxRecords=3&view=Grid% 20view" -H "Авторизация: носитель YOUR_API_KEY" 

Когда мы запускаем эту команду с ключом API, возвращается следующее:

 {
   "записи": [
      {
         «id»: «recyPfUXJUP1HH03a»,
         "поля": {
            «Напиток»: «Чёрный чай без кофеина»,
            «Дата»: «2020-05-24T10:03:38. 000Z»
         
},
         "createdTime":"2020-05-24T10:03:38.000Z"
      ]
} 

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

Сделать запрос POST с помощью cURL

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

 curl -v -X POST https://api.airtable.com/v0/appiTz7oLBs9hDIFg/Tracker\
  -H "Авторизация: носитель YOUR_API_KEY" \
  -H "Тип контента: приложение/json" \
  --данные '{
  "записи": [
    {
      "поля": {
        "Напиток": "Дарджилинг"
      }
    },
  ]
}' 

В этой команде происходит много всего, поэтому давайте разберем ее:

  • -v указывает cURL показать нам все детали вывода.
  • -X POST указывает cURL выполнить запрос POST.
  • https://api.airtable.com/v0/appiTz7oLBs9hDIFg/Tracker — это URL-адрес, на который мы отправляем наш почтовый запрос.
  • -H позволяет нам указать заголовки для нашего веб-запроса, в которых хранятся дополнительные данные, такие как наш ключ API и тип отправляемого контента.
  • – данные, где мы указываем данные, которые мы хотим отправить на веб-сервер.

Выполнение этой команды возвращает следующее:

 {
    "записи": [
        {
            "id": "recyPfUXJUP1HH03a",
            "поля": {
                «Напиток»: «Дарджилинг»,
                «Дата»: «2020-05-24T10:03:38.000Z»
            },
            "createdTime": "2020-05-24T10:03:38.000Z"
        },
} 

Наша команда сработала! Мы успешно использовали cURL для выполнения POST-запроса к API Airtable.

Подведение итогов

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