code: def post(self, url, headers=None, **kwargs):
          
          if headers is None: headers = []
          headers.append(("Content-Type", "application/x-www-form-urlencoded")),
          # We handle GET-style arguments and an unstructured body. This is here
          # to support the receivers/stream endpoint.
          if 'body' in kwargs:
              body = kwargs.pop('body')
              if len(kwargs) > 0:
                  url = url + UrlEncoded('?' + _encode(**kwargs), skip_encode=True)
          else:
              body = _encode(**kwargs)
          message = {
              'method': "POST",
              'headers': headers,
              'body': body
          }
          return self.request(url, message)
docs: Sends a POST request to a URL.
  
          :param url: The URL.
          :type url: ``string``
          :param headers: A list of pairs specifying the headers for the HTTP
              response (for example, ``[('Content-Type': 'text/cthulhu'), ('Token': 'boris')]``).
          :type headers: ``list``
          :param kwargs: Additional keyword arguments (optional). If the argument
              is ``body``, the value is used as the body for the request, and the
              keywords and their arguments will be URL encoded. If there is no
              ``body`` keyword argument, all the keyword arguments are encoded
              into the body of the request in the format ``x-www-form-urlencoded``.
          :type kwargs: ``dict``
          :returns: A dictionary describing the response (see :class:`HttpLib` for
              its structure).
          :rtype: ``dict``