code: def http_request(self, path="/", method="GET", host=None, port=None, json=False, data=None):
          
  
          host = host or '127.0.0.1'
          port = port or 8080
          url = get_url(host=host, port=port, path=path)
  
          return self.http_session.request(method, url, json=json, data=data)
docs: perform a HTTP request
  
          :param path: str, path within the request, e.g. "/api/version"
          :param method: str, HTTP method
          :param host: str, if None, set to 127.0.0.1
          :param port: str or int, if None, set to 8080
          :param json: bool, should we expect json?
          :param data: data to send (can be dict, list, str)
          :return: dict