xh
- это дружелюбный и быстрый инструмент для отправки HTTP -запросов. Это как можно больше о отличном дизайне Httpie, с акцентом на улучшенную производительность.
curl -sfL https://raw.githubusercontent.com/ducaale/xh/master/install.sh | sh
iwr -useb https://raw.githubusercontent.com/ducaale/xh/master/install.ps1 | iex
ОС | Метод | Командование |
---|---|---|
Любой | Груз* | cargo install xh --locked |
Любой | Хубер | huber install xh |
Android (Termux) | пкг | pkg install xh |
Android (Magisk/Kernelsu) | MMRL ** | mmrl install xhhttp |
Альпийский Linux | Апк *** | apk add xh |
Arch Linux | Пакман | pacman -S xh |
Debian & Ubuntu | Apt **** | sudo apt install xh |
FreeBSD | Новички | pkg install xh |
Netbsd | pkgsrc | pkgin install xh |
Linux & MacOS | Nixpkgs | nix-env -iA nixpkgs.xh |
Linux & MacOS | Флокс | flox install xh |
Linux & MacOS | Домашний | brew install xh |
Linux & MacOS | Отшельник | hermit install xh |
macOS | Макспорт | sudo port install xh |
Окна | Совок | scoop install xh |
Окна | Шоколад | choco install xh |
Окна | Вингет | winget add ducaale.xh |
* Убедитесь, что у вас есть Rust 1,74 или позже
** Вам нужно будет установить CLI MMRL
*** Пакет XH доступен в Edge и будет в V3.17+. Он построен только с родными TLS.
**** Вам нужно будет добавить репозиторий APT от https://apt.cli.rs/
Страница выпуска содержит предварительно построенные двоичные файлы для Linux, MacOS и Windows.
Usage: xh [OPTIONS] <[METHOD] URL> [REQUEST_ITEM]... Arguments: <[METHOD] URL> The request URL, preceded by an optional HTTP method [REQUEST_ITEM]... Optional key-value pairs to be included in the request. Options: -j, --json (default) Serialize data items from the command line as a JSON object -f, --form Serialize data items from the command line as form fields --multipart Like --form, but force a multipart/form-data request even without files --raw <RAW> Pass raw request data without extra processing --pretty <STYLE> Controls output processing [possible values: all, colors, format, none] --format-options <FORMAT_OPTIONS> Set output formatting options -s, --style <THEME> Output coloring style [possible values: auto, solarized, monokai, fruity] --response-charset <ENCODING> Override the response encoding for terminal display purposes --response-mime <MIME_TYPE> Override the response mime type for coloring and formatting for the terminal -p, --print <FORMAT> String specifying what the output should contain -h, --headers Print only the response headers. Shortcut for --print=h -b, --body Print only the response body. Shortcut for --print=b -m, --meta Print only the response metadata. Shortcut for --print=m -v, --verbose... Print the whole request as well as the response --debug Print full error stack traces and debug log messages --all Show any intermediary requests/responses while following redirects with --follow -P, --history-print <FORMAT> The same as --print but applies only to intermediary requests/responses -q, --quiet... Do not print to stdout or stderr -S, --stream Always stream the response body -o, --output <FILE> Save output to FILE instead of stdout -d, --download Download the body to a file instead of printing it -c, --continue Resume an interrupted download. Requires --download and --output --session <FILE> Create, or reuse and update a session --session-read-only <FILE> Create or read a session without updating it form the request/response exchange -A, --auth-type <AUTH_TYPE> Specify the auth mechanism [possible values: basic, bearer, digest] -a, --auth <USER[:PASS] | TOKEN> Authenticate as USER with PASS (-A basic|digest) or with TOKEN (-A bearer) --ignore-netrc Do not use credentials from .netrc --offline Construct HTTP requests without sending them anywhere --check-status (default) Exit with an error status code if the server replies with an error -F, --follow Do follow redirects --max-redirects <NUM> Number of redirects to follow. Only respected if --follow is used --timeout <SEC> Connection timeout of the request --proxy <PROTOCOL:URL> Use a proxy for a protocol. For example: --proxy https:http://proxy.host:8080 --verify <VERIFY> If "no", skip SSL verification. If a file path, use it as a CA bundle --cert <FILE> Use a client side certificate for SSL --cert-key <FILE> A private key file to use with --cert --ssl <VERSION> Force a particular TLS version [possible values: auto, tls1, tls1.1, tls1.2, tls1.3] --https Make HTTPS requests if not specified in the URL --http-version <VERSION> HTTP version to use [possible values: 1.0, 1.1, 2, 2-prior-knowledge] --resolve <HOST:ADDRESS> Override DNS resolution for specific domain to a custom IP --interface <NAME> Bind to a network interface or local IP address -4, --ipv4 Resolve hostname to ipv4 addresses only -6, --ipv6 Resolve hostname to ipv6 addresses only -I, --ignore-stdin Do not attempt to read stdin --curl Print a translation to a curl command --curl-long Use the long versions of curl's flags --help Print help -V, --version Print version Each option can be reset with a --no-OPTION argument.
Запустите xh help
для получения более подробной информации.
xh
использует синтаксис httpie-item для установки заголовков, корпуса запроса, строки запроса и т. Д.
=
/ :=
для установки полей JSON или формы для корпуса запроса ( =
для строк и :=
для других типов JSON).
==
Для добавления строк запроса.
@
для включения файлов в многочисленные запросы eg [email protected]
или [email protected];type=image/jpeg;filename=goodbye.jpg
.
:
Для добавления или удаления заголовков, например, connection:keep-alive
или connection:
.
;
для включения заголовков с пустыми значениями, например header-without-value;
Полем
Префикс @
можно использовать для чтения значения из файла. Например: x-api-key:@api-key.txt
.
Тело запроса также может быть прочитано с стандартного ввода или из файла с использованием @filename
.
Для построения сложного объекта JSON путь JSON может использоваться в качестве ключа, например, app[container][0][id]=090-5
. Для получения дополнительной информации по этому синтаксису см.
Подобно httpie, указание части схемы URL -адреса запроса является необязательной, а ведущая толстая кишка работает как сокращение для Localhost. :8000
эквивалентен localhost:8000
, а :/path
эквивалентен localhost/path
.
URL -адреса может иметь ведущую ://
, которая позволяет быстро преобразовать URL в действительную команду XH или HTTPIE. Например, http://httpbin.org/json
становится http ://httpbin.org/json
.
xh http: // localhost: 3000/users # решается до http: // localhost: 3000/usersxh localhost: 3000/users # решает http: // localhost: 3000/usersh: 3000/users # решает http: // LocalHost: 3000/usersxh:/users # разрешается на http: // localhost: 80/usershh hesasure.com # Resolling to http: //example.comxh: //example.com # Resolve на http://example.com
xh
по умолчанию будет схемой HTTPS, если двоичное имя является одним из xhs
, https
или xhttps
. Если вы установили xh
через диспетчер пакетов, как xh
, так и xhs
должны быть доступны по умолчанию. В противном случае вам нужно создать такой:
cd/path/to/xh && ln -s ./xh ./xhs xh httpbin.org/get # решается на http://httpbin.org/getxhs httpbin.org/get # разрешается на https://httpbin.org/get
Если xh
вызывается как http
или https
(путем переименования двоичного), или если установлена переменная среды XH_HTTPIE_COMPAT_MODE
, она будет работать в режиме совместимости httpie. Единственная текущая разница заключается в том, что --check-status
не включена по умолчанию.
# Отправить get requestxh httpbin.org/json# Отправить запрос на сообщение с Body {"name": "ahmed", "Age": 24} xh httpbin.org/post name = ahmed age: = 24# Отправить запрос на получение запроса получить запрос С QueryString id = 5 & sort = truexh get httpbin.org/json id == 5 sort == true# Отправить запрос GET и включить заголовок с именем x-api-key со значением 12345xh Get httpbin.org/json x-key : 12345# Отправить запрос сообщения с телом читать от stdin.echo "[1, 2, 3]" | xh post httpbin.org/post# Отправить запрос на пут и труб Меньше# скачать и сохранить в res.jsonxh -d httpbin.org/json -o res.json# Сделайте запрос с пользовательским пользователем агентом httpbin.org/get user-agent: foobar
Улучшенная скорость запуска.
Доступно как единственный статически связанный двоичный файл, который легко установить и носить с собой.
HTTP/2 Поддержка.
Встроенный перевод, чтобы скручивать команды с помощью --curl
.
Короткий выход в стиле чистота от --help
. (Для более длительного вывода, передайте help
.)
Не все функции Httpie реализованы. (#4)
Нет системы плагинов.
Общая незрелость. Httpie старый и хорошо проверяется.
Худшая документация.
Curlie - Frontend to Curl, который добавляет простоту использования Httpie
httpie-go-httpie-like http-клиент написан в Go
curl2httpie - преобразовать командные аргументы между Curl и httpie