# dummyhttp
[](https://github.com/svenstaro/dummyhttp/actions)
[](https://cloud.docker.com/repository/docker/svenstaro/dummyhttp/)
[](https://aur.archlinux.org/packages/dummyhttp/)
[](https://crates.io/crates/dummyhttp)
[](https://github.com/svenstaro/dummyhttp/blob/master/LICENSE)
[](https://github.com/svenstaro/dummyhttp)
**A super simple HTTP server that replies with a fixed body and a fixed response code**
This is a simple, small, self-contained, cross-platform CLI tool for debugging
and testing.
It allows you to return arbitrary HTTP responses and log incoming request data.
HTTP/2 support included.
## How to use
### Log all incoming request data
dummyhttp --verbose
curl -X POST localhost:8080 -d hi
# ┌─Incoming request
# │ POST / HTTP/1.1
# │ Accept: */*
# │ Content-Length: 2
# │ Host: localhost:8080
# │ User-Agent: curl/7.66.0
# │ Content-Type: application/x-www-form-urlencoded
# │ Body:
# hi
Example with color:

### Running with no arguments always returns 200 on all interfaces at port 8080
dummyhttp
curl -v localhost:8080
# < HTTP/1.1 200 OK
# < content-length: 10
# < date: Sat, 09 Jun 2018 13:56:14 GMT
# <
# dummyhttp
### Always emit 400 Bad Request
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
### Always return a certain string
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
### Return a specific header
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"}
## How to install
**On Linux**: Download `dummyhttp-linux-amd64` from [the releases page](https://github.com/svenstaro/dummyhttp/releases) and run
chmod +x dummyhttp-linux-amd64
./dummyhttp-linux-amd64
**On macOS**: Download `dummyhttp-macos-amd64` from [the releases page](https://github.com/svenstaro/dummyhttp/releases) and run
chmod +x dummyhttp-macos-amd64
./dummyhttp-macos-amd64
**On Windows**: Download `dummyhttp-windows-amd64.exe` from [the releases page](https://github.com/svenstaro/dummyhttp/releases) and run
dummyhttp-windows-amd64.exe
**With Cargo**: If you have a somewhat recent version of Rust and Cargo installed, you can run
cargo install dummyhttp
dummyhttp
## Full options
dummyhttp 0.5.0
Sven-Hendrik Haase <svenstaro@gmail.com>
Super simple HTTP server that replies with a fixed body and a fixed response code
USAGE:
dummyhttp [OPTIONS]
OPTIONS:
-b, --body <BODY> HTTP body to send [default: dummyhttp]
-c, --code <CODE> HTTP status code to send [default: 200]
--cert <TLS_CERT> TLS cert to use
-h, --headers <HEADERS> Headers to send (format: key:value)
--help Print help information
-i, --interface <INTERFACE> Interface to bind to [default: 0.0.0.0]
--key <TLS_KEY> TLS key to use
-p, --port <PORT> Port on which to listen [default: 8080]
-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
-V, --version Print version information
## Releasing
This is mostly a note for me on how to release this thing:
- Update version in `Cargo.toml` and `README.md`
- `git commit` and `git tag -s`, `git push`
- Run `cargo publish`
- Releases will be built and deployed automatically by GitHub Actions
- Update AUR package