def algod_request(self, method, requrl, params=None, data=None, headers=None, response_format="json"): """ Execute a given request. Args: method (str): request method requrl (str): url for the request params (dict, optional): parameters for the request data (dict, optional): data in the body of the request headers (dict, optional): additional header for request Returns: dict: loaded from json response body """ header = {} if self.headers: header.update(self.headers) if headers: header.update(headers) if requrl not in constants.no_auth: header.update({constants.algod_auth_header: self.algod_token}) if requrl not in constants.unversioned_paths: requrl = api_version_path_prefix + requrl if params: requrl = requrl + "?" + parse.urlencode(params) req = Request(self.algod_address + requrl, headers=header, method=method, data=data) try: resp = urlopen(req) except urllib.error.HTTPError as e: code = e.code e = e.read().decode("utf-8") try: raise error.AlgodHTTPError(json.loads(e)["message"], code) except: raise error.AlgodHTTPError(e, code) if response_format == "json": try: return json.load(resp) except json.JSONDecodeError: return None else: return resp.read()
def algod_request(self, method, requrl, params=None, data=None, headers=None, raw_response=False): """ Execute a given request. Args: method (str): request method requrl (str): url for the request params (dict, optional): parameters for the request data (dict, optional): data in the body of the request headers (dict, optional): additional header for request raw_response (bool, default False): return the HttpResponse object Returns: dict: loaded from json response body """ header = {} if self.headers: header.update(self.headers) if headers: header.update(headers) if requrl not in constants.no_auth: header.update({constants.algod_auth_header: self.algod_token}) if requrl not in constants.unversioned_paths: requrl = api_version_path_prefix + requrl if params: requrl = requrl + "?" + parse.urlencode(params) req = Request(self.algod_address + requrl, headers=header, method=method, data=data) try: resp = urlopen(req) except urllib.error.HTTPError as e: e = e.read().decode("utf-8") raisex = e try: raisex = json.loads(e)["message"] except: pass raise error.AlgodHTTPError(raisex) if raw_response: return resp return json.loads(resp.read().decode("utf-8"))
def algod_request(self, method, requrl, params=None, data=None): """ Execute a given request. Args: method (str): request method requrl (str): url for the request params (dict, optional): parameters for the request data (dict, optional): data in the body of the request Returns: dict: loaded from json response body """ if requrl in constants.no_auth: header = {} else: header = {constants.algod_auth_header: self.algod_token} if requrl not in constants.unversioned_paths: requrl = constants.api_version_path_prefix + requrl if params: requrl = requrl + "?" + parse.urlencode(params) req = Request(self.algod_address + requrl, headers=header, method=method, data=data) try: resp = urlopen(req) except urllib.error.HTTPError as e: e = e.read().decode("utf-8") try: raise error.AlgodHTTPError(json.loads(e)["message"]) except: raise error.AlgodHTTPError(e) return json.loads(resp.read().decode("utf-8"))