code: func (c *Client) do(req *http.Request, remote string, via []*http.Request) (*http.Response, error) {
  	return c.client.Do(req)
  }
docs: // do performs an *http.Request respecting redirects, and handles the response
  // as defined in c.handleResponse. Notably, it does not alter the headers for
  // the request argument in any way.