A netcat like tool for analysing/mocking HTTP requests (from both server and client perspective). My first experiment with Go.
Usage: Client mode httpcat -client [options] http://uri-to-send-request-to.com Currently only supports GET requests. Server mode httpcat -server [options] Options (either mode) -entire or -e : Display entire request/response instead of just the body. -verbose or -v : Be verbose. Options (client mode only) -accept or -a [accept string] : Adds 'Accept' header to request. Options (server mode only) -body or -b [body message] : Body to respond with. Response code will default to 200. -port or -p [port] : Port to listen on. -response or -r [response code] : Status code to respond with. Defaults to 204. -cors or -c : Enable Cross Origin Resource Sharing support. -separator or -s [separator string] : Use the provided separator to separate messages.
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
Add support for DELETE, PUT, and POST requests in client mode.