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日 |
#60 在 HTTP客户端
233 每月下载量
135KB
3K SLoC
hitt
hitt 是一个以速度和简洁为特色的命令行HTTP测试工具。
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: VALUE
和 KEY: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, {})
配置
名称 | 默认 | 描述 |
---|---|---|
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