code: func (c *Client) do(req *http.Request, remote string, via []*http.Request) (*http.Response, error) {
  	req.Header.Set("User-Agent", UserAgent)
  
  	res, err := c.doWithRedirects(c.HttpClient(req.Host), req, remote, via)
  	if err != nil {
  		return res, err
  	}
  
  	return res, c.handleResponse(res)
  }
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.