A netcat-like tool for analysing or mocking HTTP requests.

Mark George authored on 23 Feb 2022
src Big bang. Pretty much complete. 2 years ago
README.md WIP refactor & add reverse proxy 2 years ago
README.md

httpcat

A netcat like tool for analysing/mocking HTTP requests (from both server and client perspective). My first experiment with Go.

Usage

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.

Building

cd src
go build -o ../httpcat

Cross Compiling

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

To Do

Add support for DELETE, PUT, and POST requests in client mode.