Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

HTTPie - современный HTTP-клиент командной строки, альтернатива Curl и Wget

Оригинал: HTTPie – Modern command line HTTP client , An alternate for Curl and Wget
Автор: Magesh Maruthamuthu
Дата публикации: 17 апреля 2019 года
Перевод: А. Кривошей
Дата перевода: март 2020 г.

Чаще всего для загрузки файлов и других задач, связанных со скачиванием данных из сети, мы используем команды Curl или Wget .

Ранее мы писали о лучших менеджерах загрузок командной строки. Вы можете почитать эти статьи:

aria2 – A Command Line Multi-Protocol Download Tool For Linux.
Axel – A Lightweight Command Line Download Accelerator For Linux.
Wget – A Standard Command Line Download Utility For Linux.
curl – A Nifty Command Line Download Tool For Linux.

Сегодня мы будем обсуждать ту же тему. Название утилиты - HTTPie. Это современный http-клиент командной строки и лучшая альтернатива для команд curl и wget.

Что такое HTTPie?

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

HTTPie можно использовать для тестирования, отладки и общего взаимодействия с HTTP-серверами.

Главные возможности:

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

Установка HTTPie в Linux

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

В системах Fedora используйте команду DNF для установки httpie.

$ sudo dnf install httpie

Для систем Debian/Ubuntu используйте команду APT-GET или APT.

$ sudo apt install httpie

Для систем на основе Arch Linux используйте Pacman.

$ sudo pacman -S httpie

Для систем RHEL/CentOS используйте команду YUM.

$ sudo yum install httpie

Для системы openSUSE Leap используйте команду Zypper.

$ sudo zypper install httpie

1) Как запросить URL с помощью HTTPie?

Базовое использование httpie - запросить URL-адрес веб-сайта в качестве аргумента.

# http 2daygeek.com
HTTP/1.1 301 Moved Permanently
CF-RAY: 4c4a618d0c02ce6d-LHR
Cache-Control: max-age=3600
Connection: keep-alive
Date: Tue, 09 Apr 2019 06:21:28 GMT
Expires: Tue, 09 Apr 2019 07:21:28 GMT
Location: https://2daygeek.com/
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding

2) Как скачать файл с помощью HTTPie?

Вы можете скачать файл с помощью HTTPie с параметром --download. Это похоже на команду wget.

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

3) Как возобновить частично выполненную загрузку, используя HTTPie?

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

Вы можете проверить выполнение загрузки в приведенном ниже выводе.

root@Ubuntu18:/var/log# ls -lhtr 100MB.bin 
-rw-r--r-- 1 root root 25M Apr  9 01:33 100MB.bin

4) Как выгрузить файл на сервер с помощью HTTPie?

Вы можете выгрузить файл, используя HTTPie с символом «<».

$ http https://transfer.sh < Anbox-1.png

5) Как скачать файл, используя HTTPie с символом перенаправления ">"?

Вы можете скачать файл, используя HTTPie с символом перенаправления «>» и указанием имени выходного файла.

6) Как отправить метод HTTP GET?

Вы можете отправить метод HTTP GET в запросе. Метод GET используется для получения информации с данного сервера с использованием заданного URI.

# http GET httpie.org
HTTP/1.1 301 Moved Permanently
CF-RAY: 4c4a83a3f90dcbe6-SIN
Cache-Control: max-age=3600
Connection: keep-alive
Date: Tue, 09 Apr 2019 06:44:44 GMT
Expires: Tue, 09 Apr 2019 07:44:44 GMT
Location: https://httpie.org/
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding

7) Как отправить форму?

Используйте приведенный ниже формат команды для отправки формы. Запрос POST используется для отправки данных на сервер, например, информации о клиенте, загрузки файла и т. д., с использованием форм HTML.

# http -f POST Ubuntu18.2daygeek.com hello='World'
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 3138
Content-Type: text/html
Date: Tue, 09 Apr 2019 06:48:12 GMT
ETag: "2aa6-5844bf1b047fc-gzip"
Keep-Alive: timeout=5, max=100
Last-Modified: Sun, 17 Mar 2019 15:29:55 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding

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

# http -v Ubuntu18.2daygeek.com
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: ubuntu18.2daygeek.com
User-Agent: HTTPie/0.9.8

hello=World

HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 3138
Content-Type: text/html
Date: Tue, 09 Apr 2019 06:48:30 GMT
ETag: "2aa6-5844bf1b047fc-gzip"
Keep-Alive: timeout=5, max=100
Last-Modified: Sun, 17 Mar 2019 15:29:55 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding

8) Выполнение HTTP-аутентификации

В настоящее время поддерживаются схемы аутентификации Basic и Digest.

Basic:

$ http -a username:password example.org

Digest:

$ http -A digest -a username:password example.org

Запрос пароля:

$ http -a username example.org