diff --git a/wau/http.py b/wau/http.py index 4ce8eaf..cb5c2d5 100644 --- a/wau/http.py +++ b/wau/http.py @@ -44,12 +44,16 @@ class Response: def open(url: str, params: Mapping = None) -> Response: - if params is not None: - url += "?" + urllib.parse.urlencode(params) - request = Request(url) - request.add_header("User-Agent", HTTP_USER_AGENT) - http_response = urllib.request.urlopen(request, timeout=HTTP_TIMEOUT) - return Response(http_response) + while True: + try: + if params is not None: + url += "?" + urllib.parse.urlencode(params) + request = Request(url) + request.add_header("User-Agent", HTTP_USER_AGENT) + http_response = urllib.request.urlopen(request, timeout=HTTP_TIMEOUT) + return Response(http_response) + except TimeoutError as e: + logger.exception("Timeout", exc_info=e) def download_zip(url: str, dest: Path) -> None: