11个版本

新增 0.0.11 2024年8月6日
0.0.10 2024年7月14日
0.0.9 2024年6月8日
0.0.6 2024年5月20日
0.0.2 2023年12月23日

#60HTTP客户端

Download history 137/week @ 2024-05-17 14/week @ 2024-05-24 184/week @ 2024-05-31 224/week @ 2024-06-07 10/week @ 2024-06-14 2/week @ 2024-06-28 8/week @ 2024-07-05 112/week @ 2024-07-12 7/week @ 2024-07-19 1/week @ 2024-07-26 113/week @ 2024-08-02

233 每月下载量

MIT 许可证

135KB
3K SLoC

hitt

hitt 是一个以速度和简洁为特色的命令行HTTP测试工具。

hitt example

hitt 0.0.11
command line HTTP testing tool focused on speed and simplicity
Mads Hougesen <mads@mhouge.dk>

Usage: hitt <COMMAND>

Commands:
  run          Send http request
  sse          Listen to sse events
  completions  Generate shell completions
  help         Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

安装

可以使用 Cargo 安装 hitt。

cargo install hitt --locked

如果您尚未安装 Cargo,需要先 安装它

依赖项

hitt 对 Windows 和 macOS 用户不需要任何外部依赖。

Linux用户必须安装 openssl

Debian 和 Ubuntu

sudo apt-get install pkg-config libssl-dev

Arch Linux

sudo pacman -S pkg-config openssl

Fedora

sudo dnf install pkg-config perl-FindBin openssl-devel

Alpine Linux

apk add pkgconfig openssl-dev

openSUSE

sudo zypper in libopenssl-devel

用法

要发送请求,请创建一个以 .http 结尾的文件。

.http 文件的语法相当简单

GET https://mhouge.dk/

然后可以使用以下命令运行该文件

hitt run PATH_TO_FILE

这就是发送请求所需的所有操作。

Send http request

Usage: hitt run [OPTIONS] <PATH>

Arguments:
  <PATH>  Path to .http file, or directory if supplied with the `--recursive` argument

Options:
      --timeout <TIMEOUT_MS>  Request timeout in milliseconds
      --var <KEY>=<VALUE>     Variables to pass to request
  -r, --recursive             Enable to run directory recursively
      --fail-fast             Exit on error response status code
      --hide-body             Whether or not to show response body
      --hide-headers          Whether or not to show response headers
      --disable-formatting    Disable pretty printing of response body
  -h, --help                  Print help
  -V, --version               Print version

参数

参数 描述
--var<KEY>=<VALUE> 传递给请求的变量
--recursive 运行目录中的所有文件
--fail-fast 在状态码为 4XX 或 5xx 时退出
--hide-headers 隐藏响应头
--hide-body 隐藏响应体
--timeout <TIMEOUT_MS> 请求超时(毫秒)

请求头

请求头可以通过在方法和URL后写入键值对(KEY:VALUE)添加

GET https://mhouge.dk/
key:value

头值前的空格将被忽略,因此 KEY: VALUEKEY:VALUE 都将具有值 VALUE

请求体

可以通过创建一个空行,然后输入所需的请求体来与请求一起发送请求体。

请注意,hitt 不会 推断内容类型。它必须作为头信息编写。

POST https://mhouge.dk/
content-type:application/json

{
    "key": "value"
}

单个文件中的多个请求

可以在单个文件中通过添加一行以###作为分隔符的行来编写多个请求。

GET https://mhouge.dk/

###

GET https://mhouge.dk/

变量

hitt支持请求变量。

可以使用以下语法在文件中设置变量:@name = VALUE。空白字符将被忽略。

变量通过将名称包裹在花括号中({{ name }})来使用。

@variable_name = localhost

GET {{ variable_name }}/api

文件内的变量不会与其他文件共享。

变量参数

可以使用--var <KEY>=<VALUE>参数将变量传递给所有请求。

# file.http

GET {{ host }}/api

然后可以运行该文件

hitt run --var host=localhost:5000 file.http

服务器发送事件(SSE)

可以使用hitt sse命令启动SSE监听器。

hitt sse https://sse.dev/test
Listen to sse events

Usage: hitt sse <URL>

Arguments:
  <URL>

Options:
  -h, --help     Print help
  -V, --version  Print version

Shell补全

可以使用mdsf completions <SHELL>生成Shell补全。

Generate shell completions

Usage: hitt completions <SHELL>

Arguments:
  <SHELL>  [possible values: bash, elvish, fish, powershell, zsh]

Options:
  -h, --help     Print help
  -V, --version  Print version

Bash

将以下内容添加到您的.bashrc中。

eval "$(mdsf completions bash)"

Bash

将以下内容添加到您的.zshrc中。

eval "$(mdsf completions zsh)"

Fish

将以下内容添加到~/.config/fish/config.fish中。

mdsf completions fish | source

PowerShell

将以下内容添加到PowerShell配置文件中(可以通过运行$PROFILE找到)。

Invoke-Expression (&mdsf completions powershell)

Elvish

将以下内容添加到~/.elvish/rc.elv中。

eval (mdsf completions elvish)

Neovim

hitt可以直接在Neovim中运行。

[!NOTE] hitt可执行文件必须可在您的路径中,以便插件正常工作。

安装

Lazy

local hitt_plugin = {
    "hougesen/hitt",
    opts = {},
}

用法

插件公开了一个单独的命令:HittSendRequest,可以将其绑定到如下键映射

-- ~/.config/nvim/after/plugin/hitt.lua

local hitt = require("hitt")

vim.keymap.set("n", "<leader>rr", hitt.HittSendRequest, {})

hitt neovim window

配置

名称 默认 描述
window_width 80 窗口宽度百分比
window_height 80 窗口高度百分比
fail_fast false 启用--fail-fast选项

HTTP语法高亮显示

可以通过安装http treesitter解析器(使用:TSInstall http)并为.http文件添加文件关联来启用语法高亮显示。

vim.filetype.add({
    extension = {
        http = "http",
    },
})

免责声明

hitt可能尚未准备好投入主流使用。我(Mads Hougesen)主要基于我认为有用或有趣的特性来开发它。

依赖项

~12–24MB
~369K SLoC