http.Requestとhttp.Responseをダンプする
net/http/httputilを使えばいい
httputilの存在をしらず、最初は自分でRequest、Responseをダンプする関数を書いていたのだが こんなの無いわけない(少なくとも誰かがライブラリ作ってるはず。。。)と思い探したらそもそも公式で用意されていた。
http.Requestのダンプ
b, err := httputil.DumpRequest(request, true) // 2つ目の引数はbodyをダンプするかどうか
if e != nil {
fmt.Println(e)
} else {
fmt.Println(string(b))
}
これで以下のような結果が得られるはず。
POST / HTTP/1.1
Host: example.com
action=getmeas&category=1
http.Responseのダンプ
呼び出す関数が違うだけで使い方はDumpRequestと同じ。
b, err := httputil.DumpResponse(request, true) // 2つ目の引数はbodyをダンプするかどうか
if e != nil {
fmt.Println(e)
} else {
fmt.Println(string(b))
}
これで以下のような結果が得られるはず。
HTTP/1.1 200 OK
Content-Length: 23
Content-Type: application/json
Date: Sun, 03 Jan 2021 14:54:34 GMT
{"name":"Bob","int":18}