10 个版本 (5 个重大更改)
0.6.1 | 2021 年 2 月 12 日 |
---|---|
0.6.0 | 2021 年 2 月 8 日 |
0.5.0 | 2021 年 2 月 7 日 |
0.4.0 | 2021 年 2 月 5 日 |
0.1.0 | 2018 年 2 月 28 日 |
#313 在 HTTP 客户端
340KB
1K SLoC
ht
ht 已迁移到 xh. 更多关于更改的背景信息,请参阅 #1
又一个 HTTPie 克隆,用 Rust 编写。
安装
在 macOS 上通过 Homebrew
brew install ht-rust
在 Arch Linux 上通过 AUR
yay -S ht-bin
从二进制文件
发布页面 https://github.com/ducaale/ht/releases 包含适用于 Linux、macOS 和 Windows 的预构建二进制文件。
从源代码
确保您已安装 Rust 1.46 或更高版本。
cargo install ht
用法
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
请求项
ht
使用 HTTPie 的请求项语法 来设置头部、请求体、查询字符串等。
=
/:=
用于设置请求体的 JSON 字段(=
用于字符串和:=
用于其他 JSON 类型)。==
用于添加查询字符串。@
用于在多部分请求中包含文件,例如picture@hello.jpg
或picture@hello.jpg;type=image/jpeg
。:
用于添加或删除头部,例如connection:keep-alive
或connection:
。;
用于包含带有空值的标题,例如header-without-value;
。
示例
# 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
使用的语法和主题
依赖
~19–35MB
~602K SLoC