ヘッダにHost: example.com
をつけているのに期待通りの動作にならなくて、少しハマったので、メモ。
まず実際に実行されたHTTPリクエストやサーバーからのレスポンスを確認するには、httputilのDumpRequest
, DumpResponse
が便利。
dump, _ := httputil.DumpRequest(req, true)
fmt.Printf("%q", dump)
res, err := client.Do(req)
dump2, _ := httputil.DumpResponse(res, true)
fmt.Printf("%q", dump2)
結果、
req.Headers.Set("Host", "example.com")
では期待通りにヘッダがつけられていないことが判明。正解は、
req.Host = "example.com"
と書くのだそうだ。