DevOps

HTTPie - http клиент, похожий на команды Curl и Wget

HTTPie - aitch-tee-tee-pie — это cURL-подобный, современный, удобный и кроссплатформенный HTTP-клиент командной строки, написанный на Python. Он разработан, чтобы сделать взаимодействие CLI с веб-сервисами простым и максимально удобным для пользователя.

Он поддерживает простые команды http и позволяет пользователям отправлять произвольные HTTP-запросы с использованием простого и естественного синтаксиса. Он используется в основном для тестирования, бесперебойной отладки и главным образом для взаимодействия с HTTP-серверами, веб-сервисами и API-интерфейсами RESTful.

- HTTPie поставляется с интуитивно понятным интерфейсом и поддерживает JSON.
- имеет интуитивно понятный командный синтаксис.
- подсветка синтаксиса, форматирования и вывода терминала.
- HTTPS-прокси и поддержка аутентификации.
- поддержка форм и загрузки файлов.
- поддержка произвольных данных запроса и заголовков.
- Wget-подобные загрузки и расширения.
- поддерживает Python 3.x.

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

apt-get install httpie [On Debian/Ubuntu]
dnf install httpie [On Fedora]
yum install httpie [On CentOS/RHEL]
pacman -S httpie [On Arch Linux]

После установки синтаксис для использования httpie:

$ http [options] [METHOD] URL [ITEM [ITEM]]

Основное использование httpie — предоставить URL в качестве аргумента:

$ http netdevops.ru

Отправка метода HTTP

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

$ http GET netdevops.ru

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

В этом примере показано, как загрузить файл file.txt в файл Transfer.sh с помощью перенаправления ввода:

$ http https://transfer.sh < file.txt

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

Вы можете скачать файл, как показано ниже:

$ http https://transfer.sh/Xb45g/file.txt > file.txt
$ http --download https://transfer.sh/Vq3Kg/file.txt #using wget format

Отправка данных в форму

Вы также можете отправить данные в форму:

$ http --form POST netdevops.ru date='Hello World'

Посмотр деталей запроса

Чтобы увидеть отправляемый запрос, используйте опцию -v, например:

$ http -v --form POST netdevops.ru date='Hello World'

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

HTTPie также поддерживает базовую аутентификацию HTTP из CLI в форме:

$ http -a username:password http://nginx-monitor.netdevops.ru/

Пользовательские заголовки HTTP

Вы также можете определить собственные HTTP-заголовки, используя нотацию Header:Value. Мы можем проверить это, используя следующий URL, который возвращает заголовки. Здесь мы определили собственный User-Agent под названием «TEST 1.0»:

$ http GET https://httpbin.org/headers User-Agent:'TEST 1.0'

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

$ http --help
$ man http

Больше примеров использования вы можете найти в репозитории HTTPie Github:

https://github.com/httpie