Skip to content

Commit 5bb1b71

Browse files
committed
http: add support for headers
It is useful to be able to specify additional headers to send when making overpass requests. For example a special user agent, or an API token. Signed-off-by: Frank Villaro-Dixon <frank@villaro-dixon.eu>
1 parent 6f5bb02 commit 5bb1b71

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

overpy/__init__.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class Overpass:
6363
:param xml_parser: The xml parser to use
6464
:param max_retry_count: Max number of retries (Default: default_max_retry_count)
6565
:param retry_timeout: Time to wait between tries (Default: default_retry_timeout)
66+
:param headers: Dict of headers to send with the request
6667
"""
6768

6869
#: Global max number of retries (Default: 0)
@@ -74,18 +75,25 @@ class Overpass:
7475
#: Default URL of the Overpass server
7576
default_url: ClassVar[str] = "http://overpass-api.de/api/interpreter"
7677

78+
default_headers: ClassVar[Dict[str, str]] = {}
79+
7780
def __init__(
7881
self,
7982
url: Optional[str] = None,
8083
xml_parser: int = XML_PARSER_SAX,
8184
max_retry_count: int = None,
82-
retry_timeout: float = None):
85+
retry_timeout: float = None,
86+
headers: dict[str, str] = None):
8387

8488
#: URL to use for this instance
8589
self.url = self.default_url
8690
if url is not None:
8791
self.url = url
8892

93+
self.headers = self.default_headers
94+
if headers is not None:
95+
self.headers = headers
96+
8997
self._regex_extract_error_msg = re.compile(br"\<p\>(?P<msg>\<strong\s.*?)\</p\>")
9098
self._regex_remove_tag = re.compile(b"<[^>]*?>")
9199

@@ -139,7 +147,8 @@ def query(self, query: Union[bytes, str]) -> "Result":
139147

140148
response = b""
141149
try:
142-
with urlopen(self.url, query) as f:
150+
req = Request(self.url, data=query, headers=self.headers)
151+
with urlopen(req) as f:
143152
response = f.read()
144153
except HTTPError as exc:
145154
f = exc

0 commit comments

Comments
 (0)