code: func (c *HTTPClient) doRequest(req *http.Request) (resp *http.Response, err error) {
  	debugRequest(req) //DEBUG
  	req.SetBasicAuth(c.apiKeyPublic, c.apiKeyPrivate)
  	for attempt := 0; attempt < NbAttempt; attempt++ {
  		if resp != nil {
  			resp.Body.Close()
  		}
  		resp, err = c.client.Do(req)
  		if err != nil || (resp != nil && resp.StatusCode != 500) {
  			break
  		}
  	}
  	defer debugResponse(resp) //DEBUG
  	if err != nil {
  		return resp, fmt.Errorf("Error getting %s: %s", req.URL, err)
  	}
  	err = checkResponseError(resp)
  	return resp, err
  }
docs: // doRequest is called to execute the request. Authentification is set
  // with the public key and the secret key specified in MailjetClient.