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 日

#313HTTP 客户端

MIT 许可证

340KB
1K SLoC

ht

Version info

ht 已迁移到 xh. 更多关于更改的背景信息,请参阅 #1

又一个 HTTPie 克隆,用 Rust 编写。

asciicast

安装

在 macOS 上通过 Homebrew

brew install ht-rust

在 Arch Linux 上通过 AUR

ht-bin 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.jpgpicture@hello.jpg;type=image/jpeg
  • : 用于添加或删除头部,例如 connection:keep-aliveconnection:
  • ; 用于包含带有空值的标题,例如 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