From 25d329f8ce3c3bb759a6eb6150af6fc65cf4e787 Mon Sep 17 00:00:00 2001 From: Xevion Date: Mon, 11 Dec 2023 23:56:15 -0600 Subject: [PATCH] Add request/response debug format functions --- debug.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 debug.go diff --git a/debug.go b/debug.go new file mode 100644 index 0000000..8f55f27 --- /dev/null +++ b/debug.go @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "io" + "net/http" +) + +func DebugRequest(req *http.Request) string { + str := fmt.Sprintf("[%s %s]", req.Method, req.URL.String()) + + // Add all headers + for header_name, header_values := range req.Header { + for _, header_value := range header_values { + str += fmt.Sprintf("\n%s: %s", header_name, header_value) + } + } + + // Add body + if req.Body != nil { + body, err := io.ReadAll(req.Body) + + if err != nil { + str += fmt.Sprintf("\n\n {error while reading request body buffer: %s}", err) + } else { + str += fmt.Sprintf("\n\n%s", body) + } + } + + return str +} + +func DebugResponse(res *http.Response) string { + str := fmt.Sprintf("[%s %s]", res.Status, res.Request.URL.String()) + + // Add all headers + for header_name, header_values := range res.Header { + for _, header_value := range header_values { + str += fmt.Sprintf("\n%s: %s", header_name, header_value) + } + } + + // Add body + if res.Body != nil { + body, err := io.ReadAll(res.Body) + + if err != nil { + str += fmt.Sprintf("\n\n {error while reading response body buffer: %s}", err) + } else { + str += fmt.Sprintf("\n\n%s", body) + } + } + + return str +}