#http-response #http #server #dummy #http-body #fake

app dummyhttp

一个超级简单的 HTTP 服务器,返回固定的响应体和固定的响应代码

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 日

#44HTTP 服务器

Download history 19/week @ 2024-07-04 15/week @ 2024-07-11 37/week @ 2024-07-18 216/week @ 2024-07-25 93/week @ 2024-08-01 101/week @ 2024-08-08 71/week @ 2024-08-15

每月 502 次下载

MIT 许可证

370KB
332

dummyhttp

CI Docker Hub Crates.io license Lines of Code

一个超级简单的 HTTP 服务器,返回固定的响应体和固定的响应代码

这是一个简单、小巧、自包含、跨平台的 CLI 工具,用于调试和测试。它允许你返回任意 HTTP 响应并记录传入的请求数据。支持 HTTP/2。

如何使用

记录所有传入的请求数据

运行 dummyhttp -vv 将得到以下整洁的输出

Pretty log

不带参数运行始终在所有接口的 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"}

如何安装

静态构建:这些构建提供了针对 LinuxOSXWindows 的各种架构,可在 发布页面 上找到。获取与您的架构相对应的二进制文件。

在 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