code: def post(self, path, data=None, json=None, headers=None, **kwargs):
          
  
          if headers is not None:
              merger = jsonmerge.Merger(SCHEMA)
              kwargs["headers"] = merger.merge(self.defaultHeaders, headers)
          else:
              kwargs["headers"] = self.defaultHeaders
  
          url = combine_urls(self.host, path)
  
          if self.cert is not None:
              kwargs["cert"] = self.cert
          self.logger.debug("Trying to send HTTP POST to {}".format(url))
          try:
              resp = requests.post(url, data, json, **kwargs)
              self._log_response(resp)
          except requests.RequestException as es:
              self._log_exception(es)
              raise
  
          return resp
docs: Sends a POST request to host/path.
  
          :param path: String, resource path on server
          :param data: Dictionary, bytes or file-like object to send in the body of the request
          :param json: JSON formatted data to send in the body of the request
          :param headers: Dictionary of HTTP headers to be sent with the request,
          overwrites default headers if there is overlap
          :param kwargs: Other arguments used in the requests.request call
          valid parameters in kwargs are the optional parameters of Requests.Request
          http://docs.python-requests.org/en/master/api/
          :return: requests.Response
          :raises: RequestException