code: func (c *Client) NewFormRequest(method Method, endpoint string, params map[string]string) *Request {
  	req := c.newRequest(method, endpoint)
  
  	// set how to generate the body
  	req.prepare = func(httpReq *http.Request) error {
  		form := url.Values{}
  		for k, v := range params {
  			form.Set(k, v)
  		}
  		encoded := form.Encode()
  
  		// set to the request
  		httpReq.Body = ioutil.NopCloser(bytes.NewReader([]byte(encoded)))
  		httpReq.ContentLength = int64(len(encoded))
  		httpReq.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  		return nil
  	}
  
  	return req
  }
docs: // NewFormRequest generates a new Request object with a form encoded body based
  // on the params map.