RoundTrip executes a request and returns a response.
(req *http.Request)
| 48 | |
| 49 | // RoundTrip executes a request and returns a response. |
| 50 | func (t *CountingTransport) RoundTrip(req *http.Request) (*http.Response, error) { |
| 51 | var b bytes.Buffer |
| 52 | |
| 53 | atomic.AddUint64(&t.count, 1) |
| 54 | |
| 55 | req.Header.Set("Accept", "application/yaml") |
| 56 | req.Header.Set("X-Request-ID", "foo-123") |
| 57 | |
| 58 | res, err := http.DefaultTransport.RoundTrip(req) |
| 59 | |
| 60 | b.WriteString(strings.Repeat("-", 80) + "\n") |
| 61 | fmt.Fprintf(&b, "%s %s", req.Method, req.URL.String()) |
| 62 | |
| 63 | if err == nil { |
| 64 | fmt.Fprintf(&b, " [%s] %s\n", res.Status, res.Header.Get("Content-Type")) |
| 65 | } else { |
| 66 | fmt.Fprintf(&b, "ERROR: %s\n", err) |
| 67 | } |
| 68 | |
| 69 | b.WriteTo(os.Stdout) |
| 70 | |
| 71 | return res, err |
| 72 | } |
| 73 | |
| 74 | func main() { |
| 75 | var wg sync.WaitGroup |