diff --git a/http/client.go b/http/client.go index 9a86604..09296f3 100644 --- a/http/client.go +++ b/http/client.go @@ -410,6 +410,10 @@ func urlErrorOp(method string) string { // Any returned error will be of type *url.Error. The url.Error // value's Timeout method will report true if the request timed out. func (c *Client) Do(req *Request) (*Response, error) { + if c.Transport != nil { + return c.Transport.RoundTrip(req) + } + return c.do(req) } diff --git a/http/transport.go b/http/transport.go index f117558..f39b748 100644 --- a/http/transport.go +++ b/http/transport.go @@ -20,3 +20,12 @@ type readTrackingBody struct { didRead bool didClose bool } + +type Transport struct{} + +var DefaultTransport RoundTripper = &Transport{} + +// roundTrip implements a RoundTripper over HTTP. +func (t *Transport) RoundTrip(req *Request) (*Response, error) { + return roundTrip(req) +}