code: func (c *Client) NewRequest(method Method, endpoint string, ctype string, body io.Reader) (req *Request) {
  	req = c.newRequest(method, endpoint)
  	if body == nil {
  		return
  	}
  
  	req.prepare = func(hr *http.Request) error {
  		rc, ok := body.(io.ReadCloser)
  		if !ok {
  			rc = ioutil.NopCloser(body)
  		}
  		hr.Body = rc
  		hr.Header.Set("Content-Type", ctype)
  		return nil
  	}
  	return
  }
docs: // NewRequest generates a new Request object that will send bytes read from body
  // to the endpoint.