code: func (r *Request) HTTPRequest() (*http.Request, error) {
  	req, err := http.NewRequest(string(r.Method), r.URL.String(), nil)
  	if err != nil {
  		return nil, err
  	}
  
  	// merge headers
  	req.Header = r.Headers
  
  	// generate the body
  	if r.prepare != nil {
  		if err := r.prepare(req); err != nil {
  			return nil, err
  		}
  	}
  
  	return req, nil
  }
docs: // HTTPRequest returns an *http.Request populated with data from r. It may be
  // executed by any http.Client.