18 个版本 (5 个稳定版本)
新 1.1.0 | 2024 年 8 月 23 日 |
---|---|
1.0.3 | 2023 年 4 月 28 日 |
1.0.2 | 2022 年 9 月 14 日 |
0.6.2 | 2022 年 9 月 11 日 |
0.2.2 | 2018 年 7 月 29 日 |
#44 在 HTTP 服务器
每月 502 次下载
370KB
332 行
dummyhttp
一个超级简单的 HTTP 服务器,返回固定的响应体和固定的响应代码
这是一个简单、小巧、自包含、跨平台的 CLI 工具,用于调试和测试。它允许你返回任意 HTTP 响应并记录传入的请求数据。支持 HTTP/2。
如何使用
记录所有传入的请求数据
运行 dummyhttp -vv
将得到以下整洁的输出
不带参数运行始终在所有接口的 8080 端口上返回 200
dummyhttp
curl -v localhost:8080
# < HTTP/1.1 200 OK
# < content-length: 10
# < date: Sat, 09 Jun 2018 13:56:14 GMT
# <
# dummyhttp
始终返回 400 错误请求
dummyhttp -c 400
curl -v localhost:8080
# < HTTP/1.1 400 Bad Request
# < content-length: 10
# < date: Sat, 09 Jun 2018 13:57:53 GMT
# <
# dummyhttp
始终返回特定的字符串
dummyhttp -b "Hello World"
curl -v localhost:8080
# < HTTP/1.1 200 OK
# < content-length: 12
# < date: Sat, 09 Jun 2018 13:58:57 GMT
# <
# Hello World
返回特定的头
dummyhttp -b '{"Hello": "World"}' -H "content-type:application/json"
curl -v localhost:8080
# < HTTP/1.1 200 OK
# < content-type: application/json
# < date: Wed, 24 Aug 2022 00:55:35 +0200
# < content-length: 18
# <
# {"Hello": "World"}
如何安装
静态构建:这些构建提供了针对 Linux、OSX 和 Windows 的各种架构,可在 发布页面 上找到。获取与您的架构相对应的二进制文件。
在 Linux 和 OSX 上,您需要在二进制文件上运行 chmod +x
以运行它。例如
chmod +x dummyhttp-1.0.2-x86_64-unknown-linux-musl
之后,您可以运行它
./dummyhttp-1.0.2-x86_64-unknown-linux-musl
使用 Cargo:如果您安装了较新版本的 Rust 和 Cargo,您可以运行
cargo install dummyhttp
dummyhttp
完整选项
Super simple HTTP server that replies with a fixed body and a fixed response code
Usage: dummyhttp [OPTIONS]
Options:
-q, --quiet
Be quiet (log nothing)
-v, --verbose...
Be verbose (log data of incoming and outgoing requests). If given twice it will also log the body data
-p, --port <PORT>
Port on which to listen
[default: 8080]
-H, --headers <HEADERS>
Headers to send (format: key:value)
-c, --code <CODE>
HTTP status code to send
[default: 200]
-b, --body <BODY>
HTTP body to send
Supports Tera-based templating (https://tera.netlify.app/docs/) with a few additional
functions over the default built-ins:
uuid() - generate a random UUID
lorem(words) - generate `words` lorem ipsum words
Example: dummyhttp -b "Hello {{ uuid() }}, it's {{ now() | date(format="%Y") }} {{ lorem(words=5)}}"
[default: dummyhttp]
-i, --interface <INTERFACE>
Interface to bind to
[default: 0.0.0.0]
--print-completions <shell>
Generate completion file for a shell
[possible values: bash, elvish, fish, powershell, zsh]
--print-manpage
Generate man page
--tls-cert <TLS_CERT>
TLS certificate to use
--tls-key <TLS_KEY>
TLS private key to use
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
发布
这是关于如何发布这个项目的笔记
- 确保
CHANGELOG.md
已更新。 cargorelease<version>
cargorelease --execute <version>
- GitHub Actions 将自动部署发布。
- 更新 Arch 软件包。
依赖关系
~27–44MB
~754K SLoC