from urllib.request import Request, urlopen from json import dumps class HTTPClient: def __init__(self, url, payload=None, headers=None): self.request = Request(url, payload, headers or {}) self.request.add_header( "User-Agent", "oebb_py/git (+https://kumig.it/kumitterer/oebb_py)") @property def data(self): return self.request.data @data.setter def data(self, value): if isinstance(value, dict): value = dumps(value) if isinstance(value, str): value = value.encode() self.request.data = value def execute(self): return urlopen(self.request).read()