10 releases (5 breaking)
0.6.1 | Feb 12, 2021 |
---|---|
0.6.0 | Feb 8, 2021 |
0.5.0 | Feb 7, 2021 |
0.4.0 | Feb 5, 2021 |
0.1.0 | Feb 28, 2018 |
#313 in HTTP client
340KB
1K
SLoC
ht
ht has moved to xh. For more context behind the change, see #1
Yet another HTTPie clone in Rust.
Installation
On macOS via Homebrew
brew install ht-rust
On Arch Linux via AUR
yay -S ht-bin
From binaries
The release page contains prebuilt binaries for Linux, macOS and Windows.
From source
Make sure that you have Rust 1.46 or later installed.
cargo install ht
Usage
ht 0.6.0
USAGE:
ht [FLAGS] [OPTIONS] <[METHOD] URL> [REQUEST_ITEM]...
FLAGS:
--offline Construct HTTP requests without sending them anywhere
-j, --json (default) Data items from the command line are serialized as a JSON object
-f, --form Data items from the command line are serialized as form fields
-m, --multipart Similar to --form, but always sends a multipart/form-data request (i.e., even without files)
-I, --ignore-stdin Do not attempt to read stdin
-F, --follow Do follow redirects
-d, --download
-c, --continue Resume an interrupted download
-v, --verbose Print the whole request as well as the response
-q, --quiet Do not print to stdout or stderr
-S, --stream Always stream the response body
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-A, --auth-type <auth-type> Specify the auth mechanism [possible values: Basic, Bearer]
-a, --auth <auth>
-o, --output <output> Save output to FILE instead of stdout
--max-redirects <max-redirects> Number of redirects to follow, only respected if `follow` is set
-p, --print <print> String specifying what the output should contain
--pretty <pretty> Controls output processing [possible values: All, Colors, Format, None]
-s, --style <theme> Output coloring style [possible values: Auto, Solarized]
--default-scheme <default-scheme> The default scheme to use if not specified in the URL
ARGS:
<[METHOD] URL> The request URL, preceded by an optional HTTP method
<REQUEST_ITEM>... Optional key-value pairs to be included in the request
Request Items
ht
uses HTTPie's request-item syntax to set headers, request body, query string, etc.
=
/:=
for setting the request body's JSON fields (=
for strings and:=
for other JSON types).==
for adding query strings.@
for including files in multipart requests e.gpicture@hello.jpg
orpicture@hello.jpg;type=image/jpeg
.:
for adding or removing headers e.gconnection:keep-alive
orconnection:
.;
for including headers with empty values e.gheader-without-value;
.
Examples
# Send a GET request
ht httpbin.org/json
# Send a POST request with body {"name": "ahmed", "age": 24}
ht httpbin.org/post name=ahmed age:=24
# Send a GET request with querystring id=5&sort=true
ht get httpbin.org/json id==5 sort==true
# Send a GET request and include a header named x-api-key with value 12345
ht get httpbin.org/json x-api-key:12345
# Send a PUT request and pipe the result to less
ht put httpbin.org/put id:=49 age:=25 | less
# Download and save to res.json
ht -d httpbin.org/json -o res.json
Syntaxes and themes used
Dependencies
~19–35MB
~602K SLoC