code: func (h *HTTPExtender) send(action string, args interface{}, result interface{}) error {
  	out, err := json.Marshal(args)
  	if err != nil {
  		return err
  	}
  
  	url := strings.TrimRight(h.extenderURL, "/") + "/" + action
  
  	req, err := http.NewRequest("POST", url, bytes.NewReader(out))
  	if err != nil {
  		return err
  	}
  
  	req.Header.Set("Content-Type", "application/json")
  
  	resp, err := h.client.Do(req)
  	if err != nil {
  		return err
  	}
  	defer resp.Body.Close()
  
  	if resp.StatusCode != http.StatusOK {
  		return fmt.Errorf("Failed %v with extender at URL %v, code %v", action, url, resp.StatusCode)
  	}
  
  	return json.NewDecoder(resp.Body).Decode(result)
  }
docs: // Helper function to send messages to the extender