
Содержание статьи
Лучано Стрика

Независимо от того, это тестирование результатов API перед развертыванием в производство, или просто получение ответа с веб-сайта (например, чтобы проверить, не работает ли), Curl практически везде присутствует.
Как исследователю данных, мне приходилось время от времени использовать его. Однако чаще всего я просто заменял параметры из скопированной и вставленной curl команды, которая обходила канал Slack моей команды.
Я решил, что мне нужно лучше понять этот мощный инструмент, если я хочу использовать его в полной мере и теперь я здесь, чтобы поделиться некоторыми из самых интересных вещей, которые я нашел в этом учебнике по curl.
Если у вас есть советы или подсказки, которые вы хотите добавить, пожалуйста, сделайте это в комментариях, поскольку мое понимание этого инструмента все еще находится на начальной стадии.
Локон: Чем он полезен?
Curl – это инструмент командной строки, который позволяет нам выполнять HTTP-запросы из оболочки. Он также охватывает многие другие протоколы, например, FTP, хотя они выходят за рамки этого учебника.
Его название означает «URL-адрес клиента», и его разработал шведский разработчик Даниэль Стенберг. Это проект с открытым исходным кодом, и его можно найти здесь, если вы захотите присоединиться.
Вы можете вызвать его из любимого терминала, и обычно он предварительно установлен в ОС на базе Linux. В противном случае его обычно можно скачать через apt-get на Linux и заварить на Mac.
Вызов метода GET
В своей простой форме команда curl будет выглядеть так:
curl http://www.dataden.tech
Типичным поведением curl является вызов метода HTTP GET по указанному URL-адресу. Таким образом, результатом программы для этой команды будет весь текст ответа HTTP (в данном случае HTML), который сайт возвращает в GET, который будет записан, как указано на стандартный выход.
Если вы хотите прочитать ответ, не выходя из оболочки, я бы рекомендовал по крайней мере переместить его в a меньше команду, чтобы иметь возможность легко прокручивать исходные данные.
Много раз мы хотим отправить содержимое ответа в файл. Это делается с помощью -о аргумент, вот такой:
curl -o output.html www.dataden.tech
что эквивалентно:
curl www.dataden.tech > output.html
По желанию, вы можете указать URL сайта, на который вы хотите вызвать curl, с помощью a -s аргумент, вот такой:
curl -s http://www.dataden.tech
что позволяет изменить порядок собственных аргументов.
Вы также можете использовать — Дальше чтобы указать более одного URL-адреса, хотя официальный документ советует вместо этого вызвать curl для каждого URL-адреса в другой команде.
Выполнение POST к URL-адресу
Иногда вам нужно проверить, правильно ли работает API, и обычно для этого нужно отправить ему аргументы.
Обычно мы делаем это посредством метода POST, передавая некоторый JSON со всеми необходимыми параметрами. Существует много способов сделать это с помощью завивки.
Вы можете передать значение своих аргументов следующим образом:
curl --data "name=John&surname=Doe" http://www.dataden.tech
Или как обычный JSON:
curl --data '{"name":"John","surname":"Doe"}' \http://www.dataden.tech
Использование – данные является эквивалентным использованию -d, и оба автоматически изменят метод на POST. Однако мы также можем использовать -X флаг (– запрос), чтобы указать, какой метод мы хотим вызвать:
curl -X "POST" \-d "name=John&surname=Doe" http://www.example.com
Иногда нам просто нужно быстро проверить, работает ли сайт, не желая загружать весь потенциально трудный ответ. В других случаях заголовки сохраняют важные конфигурации.
Эти два варианта использования также разрешаются с помощью curl. Мы можем использовать -включать (-я) параметр для включения заголовков, и -руководитель (-Я -это большое ‘i’-), чтобы включать только заголовки (вызывая метод HEAD).
Установите значение вашего агента пользователя
Теперь, когда я рассмотрел основы, позвольте мне рассказать вам о некоторых из самых крутых вещей, которые я нашел, что мы можем сделать из curl.
The пользователь-агент Аргумент позволяет указать, какие устройства и версии обозревателя вы используете, если это приведет к другому отображению сайта.
Благодаря этому вы сможете увидеть мобильную версию сайта со своего ноутбука или наоборот.
С точки зрения безопасности это, вероятно, вызывает некоторые проблемы. До сих пор я не знал, как легко притворяться, что пользуешься другим устройством (даже не используя виртуальную машину), и, работая в области предотвращения мошенничества, я могу понять, почему это может быть проблемой.
Учитывая это, если вы используете это навсегда, это отличный способ увидеть, как выглядит сайт с планшета, мобильного устройства или ноутбука, и это лишь некоторые из них.
Вот пример прямо из официальной документации (хотя списки пользовательских агентов легко доступны в Интернете).
curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" www.example.com
Определение времени подключения с помощью Curl
Другой причиной, почему я начал узнавать больше о curl, было то, что я хотел узнать, сколько времени нужно, чтобы мой сайт отвечал.
Хотя базовая документация этого не охватывает, немного поиск в Google обнаружил эту команду, которую я считаю очень полезной:
curl -w "%{time_total}\n" -o /dev/null -s www.example.com
Это просто выведет общее время, необходимое для получения ответа из данного домена.
В целом, -w (–записать) argument принимает специальную строку форматирования и заполняет зарезервированные ключевые слова с разными свойствами ответа отформатированным способом. Все ключевые слова и их значения доступны на странице руководства команды.
Дальнейшее чтение
Вот несколько ссылок, которые могут оказаться интересными, если вы хотите узнать больше об этой широкой теме:
Чтобы сделать вывод
Надеюсь, вы нашли это поступление полезным, и вы оставите этот учебник, зная по крайней мере основы этой удобной команды.
Как я уже говорил раньше, я все еще учусь и буду признателен за любые другие интересные знания об использовании программы. То же касается любого отзыва о том, что я написал до сих пор.
Если я допустил ошибки или есть какая-то часть, которую, по вашему мнению, я мог бы сформулировать более четко, пожалуйста, сообщите мне.
Надеюсь, что скоро увидимся снова, счастливого кодирования!
Следите за мной на Medium и Twitter, чтобы быть в курсе моих учебников, советов и статей. Подумайте о том, чтобы поделиться этой статьей с другом веб-разработчика, если она вам понравилась (или как пассивно агрессивный способ приказать им выучить curl).
Первоначально опубликовано на www.dataden.tech 7 октября 2018 года.