A netcat-like tool for analysing or mocking HTTP requests.
| binaries | 3 years ago | ||
| src | 3 years ago | ||
| README.md | 3 years ago | ||
A netcat like tool for analysing/mocking HTTP requests (from both server and client perspective). My first experiment with Go.
httpcat [OPTIONS] <command>
Application Options:
-v, --verbose Show additional details
--headers Show headers and request/status line only (default is everything)
--bodies Show bodies only (default is everything)
--nocolour Don't use colours (default is requests are blue and responses are red)
--notimestamps Don't show timestamps
Help Options:
-h, --help Show this help message
Available commands:
client Send an HTTP request
proxy Start a reverse HTTP logging proxy
server Start a mock HTTP server
version Display version
Get help about a specific command by adding --help after the command. Example:
httpcat client --help
Sends a request to the specified server and displays the response.
httpcat [OPTIONS] client [client-OPTIONS]
Application Options:
-v, --verbose Show additional details
--headers Show headers and request/status line only (default is everything)
--bodies Show bodies only (default is everything)
--nocolour Don't use colours (default is requests are blue and responses are red)
--notimestamps Don't show timestamps
Help Options:
-h, --help Show this help message
[client command options]
-u, --uri= The URI to send the request to
--header= A header to add to request in the form name:value. Use multiple times for multiple headers.
-m, --method= HTTP method for request (default: GET)
-b, --body= Request body to send
httpcat client --method POST --body TESTING --uri http://localhost:8080/api/testing
Creates mock routes that listen on specific paths and return specific response bodies. Displays the details of any requests that it receives.
httpcat [OPTIONS] server [server-OPTIONS]
Application Options:
-v, --verbose Show additional details
--headers Show headers and request/status line only (default is everything)
--bodies Show bodies only (default is everything)
--nocolour Don't use colours (default is requests are blue and responses are red)
--notimestamps Don't show timestamps
Help Options:
-h, --help Show this help message
[server command options]
-p, --port= Port to listen on. (default: 8080)
-r, --route= Route which is made up of a path, a response body, and a response status, all separated by the pipe character. Repeat for additional routes. (default: /|testing|200)
-c, --cors Enable Cross Origin Resource Sharing (CORS).
-H, --header= A header to add to response in the form name:value. Repeat for additional headers.
httpcat server --port 8080 --route "/hello|Hello World|200" --header "Content-Type:text/plain"
This creates a web server that listens on port 8080 and responds to any requests to the /hello path with the response Hello World and response code 200. Repeat the --route option to add more routes.
Creates a reverse proxy that displays all HTTP requests and responses that pass through it.
httpcat [OPTIONS] proxy [proxy-OPTIONS]
Application Options:
-v, --verbose Show additional details
--headers Show headers and request/status line only (default is everything)
--bodies Show bodies only (default is everything)
--nocolour Don't use colours (default is requests are blue and responses are red)
--notimestamps Don't show timestamps
Help Options:
-h, --help Show this help message
[proxy command options]
-p, --port= The port that the proxy listens on.
-t, --target=
httpcat proxy --port 8090 --target http://localhost:8080
Any requests sent to port 8090 will be forwarded to http://localhost:8080 and all requests and responses will be displayed.
cd src go build -o ../httpcat
Linux
GOOS=linux GOARCH=amd64 go build -o ../httpcat-linux
Windows
GOOS=windows GOARCH=amd64 go build -o ../httpcat-win64
Intel Mac
GOOS=darwin GOARCH=amd64 go build -o ../httpcat-mac-intel
M1/ARM64 Mac
GOOS=darwin GOARCH=arm64 go build -o ../httpcat-mac-arm64