From e88364bf56d3334671126b4c094db24f0fc8763a Mon Sep 17 00:00:00 2001 From: ayanamist Date: Thu, 5 Oct 2017 11:54:06 +0800 Subject: [PATCH] fix urlopen_with_retry may return None --- src/you_get/common.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/you_get/common.py b/src/you_get/common.py index 1e7fca5b..f56f85e3 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -342,14 +342,19 @@ def get_location(url): return response.geturl() def urlopen_with_retry(*args, **kwargs): - for i in range(2): + retry_time = 3 + for i in range(retry_time): try: return request.urlopen(*args, **kwargs) - except socket.timeout: + except socket.timeout as e: logging.debug('request attempt %s timeout' % str(i + 1)) + if i + 1 == retry_time: + raise e # try to tackle youku CDN fails except error.HTTPError as http_error: logging.debug('HTTP Error with code{}'.format(http_error.code)) + if i + 1 == retry_time: + raise http_error def get_content(url, headers={}, decoded=True): """Gets the content of a URL via sending a HTTP GET request.