From 8d01005946a4f07891c2962026e87fc54bcd44d0 Mon Sep 17 00:00:00 2001 From: Arthur White Date: Wed, 2 Aug 2017 15:10:39 +0200 Subject: [PATCH] Improve Response.String format --- response.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/response.go b/response.go index 7d587aa..1e73aab 100644 --- a/response.go +++ b/response.go @@ -13,6 +13,7 @@ import ( "os" "os/exec" "runtime" + "strconv" "strings" "time" ) @@ -117,16 +118,36 @@ func openFile(url string) error { func (r *Response) String() string { s := r.Status + " - " + r.Proto + " " + r.Request.Method + " " + r.Request.URL.String() + "\n" if len(r.Header) > 0 { - s += "\tHeader:\n" + s += "\tHeader\n" + keys := make([]string, 0, len(r.Header)) + for k := range r.Header { + if k == "Set-Cookie" { + continue + } + keys = append(keys, k) + } + keyLen := stringMaxLen(keys) for k, v := range r.Header { - s += "\t\t" + k + ": " + strings.Join(v, ", ") + "\n" + if k == "Set-Cookie" { + continue + } + s += fmt.Sprintf("\t\t%"+strconv.Itoa(keyLen)+"s %s\n", k, strings.Join(v, ", ")) } } if len(r.Cookies()) > 0 { - s += "\tCookies:\n" + s += "\tCookies\n" for _, v := range r.Cookies() { s += "\t\t" + fmt.Sprint(v) } } return s } + +func stringMaxLen(ss []string) (l int) { + for _, s := range ss { + if len(s) > l { + l = len(s) + } + } + return +}