HTTPie (произносится как aitch-tee-tee-pie) - это HTTP-клиент командной строки. Его цель - сделать взаимодействие интерфейса командной строки с веб-службами максимально удобным для человека.
Он предоставляет простую команду HTTP, которая позволяет отправлять произвольные HTTP-запросы с использованием простого и естественного синтаксиса и отображает цветной вывод. HTTPie можно использовать для тестирования, отладки и общего взаимодействия с HTTP-серверами.
Функции:
- Выразительный и интуитивно понятный синтаксис
- Форматированный и раскрашенный вывод на терминал
- Встроенная поддержка JSON
- Формы и загрузка файлов
- HTTPS, прокси и аутентификация
- Данные произвольного запроса
- Пользовательские заголовки
- Постоянные сеансы
- Wget-подобные загрузки
- Поддержка Python 2.6, 2.7 и 3.x
- Поддержка Linux, Mac OS X и Windows
- Плагины
- Документация
- Покрытие тестов
Установка
- macOS
$ brew install httpie
Также доступен порт MacPorts:
$ port install httpie
- Linux
Код:
# Debian, Ubuntu, etc.
$ apt-get install httpie
# Fedora
$ dnf install httpie
# CentOS, RHEL, ...
$ yum install httpie
# Arch Linux
$ pacman -S httpie
- Windows, etc.
Код:
# Make sure we have an up-to-date version of pip and setuptools:
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie
Usage:
$ http [flags] [METHOD] URL [ITEM [ITEM]]
Примеры:
- Пользовательский метод HTTP, заголовки HTTP и данные JSON:
$ http PUT example.org X-API-Token:123 name=John
- Submitting forms:
$ http -f POST example.org hello=World
- See the request that is being sent using one of the output options:
$ http -v example.org
- Use Github API to post a comment on an issue with authentication:
$ http -a USERNAME POST https://api.github.com/repos/jakubroztocil/httpie/issues/
83/comments body='HTTPie is awesome! :heart:'
- Upload a file using redirected input:
$ http example.org < file.json
- Download a file and save it via redirected output:
$ http example.org/file > file
- Download a file wget style:
$ http --download example.org/file
- Use named sessions to make certain aspects or the communication persistent between requests to the same host:
$ http --session=logged-in -a username:password httpbin.org/get API-Key:123
$ http --session=logged-in httpbin.org/headers
- Set a custom Host header to work around missing DNS records:
$ http localhost:8000 Host:example.com
DOWNLOAD HTTPIE