diff --git a/args.go b/args.go index 13f70dc..dc35c80 100644 --- a/args.go +++ b/args.go @@ -50,9 +50,10 @@ type config struct { timeout int verbose bool - paths string - hosts string - output string + paths string + hosts string + output string + noHeaders bool requester requester } @@ -99,6 +100,10 @@ func processArgs() config { flag.BoolVar(&rawHTTP, "rawhttp", false, "") flag.BoolVar(&rawHTTP, "r", false, "") + // no headers + noHeaders := false + flag.BoolVar(&noHeaders, "no-headers", false, "") + // verbose param verbose := false flag.BoolVar(&verbose, "verbose", false, "") @@ -143,6 +148,7 @@ func processArgs() config { paths: paths, hosts: hosts, output: output, + noHeaders: noHeaders, } } diff --git a/main.go b/main.go index f412f69..a26a93d 100644 --- a/main.go +++ b/main.go @@ -93,7 +93,7 @@ func main() { continue } - path, err := res.save(c.output) + path, err := res.save(c.output, c.noHeaders) if err != nil { fmt.Fprintf(os.Stderr, "failed to save file: %s\n", err) } diff --git a/response.go b/response.go index 36105bb..1ca0d0a 100644 --- a/response.go +++ b/response.go @@ -51,10 +51,22 @@ func (r response) String() string { return b.String() } +func (r response) StringNoHeaders() string { + b := &bytes.Buffer{} + + b.Write(r.body) + + return b.String() +} + // save write a request and response output to disk -func (r response) save(pathPrefix string) (string, error) { +func (r response) save(pathPrefix string, noHeaders bool) (string, error) { content := []byte(r.String()) + if noHeaders { + content = []byte(r.StringNoHeaders()) + } + checksum := sha1.Sum(content) parts := []string{pathPrefix}