本文整理汇总了Python中urllib3.util.Retry方法的典型用法代码示例。如果您正苦于以下问题:Python util.Retry方法的具体用法?Python util.Retry怎么用?Python util.Retry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类urllib3.util
的用法示例。
在下文中一共展示了util.Retry方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_retrying_requests_session
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def get_retrying_requests_session(client_statuses=HTTP_CLIENT_STATUS_RETRY,
times=HTTP_MAX_RETRIES, delay=HTTP_BACKOFF_FACTOR,
method_whitelist=None, raise_on_status=True):
if _http_retries_disabled():
times = 0
retry = Retry(
total=int(times),
backoff_factor=delay,
status_forcelist=client_statuses,
method_whitelist=method_whitelist
)
# raise_on_status was added later to Retry, adding compatibility to work
# with newer versions and ignoring this option with older ones
if hasattr(retry, 'raise_on_status'):
retry.raise_on_status = raise_on_status
session = SessionWithTimeout()
session.mount('http://', HTTPAdapter(max_retries=retry))
session.mount('https://', HTTPAdapter(max_retries=retry))
return session
示例2: test_stream_logs_not_decoded
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def test_stream_logs_not_decoded(self, caplog):
flexmock(Retry).new_instances(fake_retry)
server = Openshift('http://apis/', 'http://oauth/authorize',
k8s_api_url='http://api/v1/')
logs = (
u'Lógs'.encode('utf-8'),
u'Lðgs'.encode('utf-8'),
)
fake_response = flexmock(status_code=http_client.OK, headers={})
(fake_response
.should_receive('iter_lines')
.and_yield(*logs)
.with_args(decode_unicode=False))
(flexmock(requests)
.should_receive('request')
.and_return(fake_response))
with caplog.at_level(logging.ERROR):
for result in server.stream_logs('anything'):
assert isinstance(result, six.binary_type)
示例3: __init__
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def __init__(self, nodes, **kwargs):
if kwargs.get('tcp_keepalive', True):
socket_options = HTTPConnection.default_socket_options + \
[(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), ]
else:
socket_options = HTTPConnection.default_socket_options
self.http = urllib3.poolmanager.PoolManager(
num_pools=kwargs.get('num_pools', 10),
maxsize=kwargs.get('maxsize', 64),
timeout=kwargs.get('timeout', 30),
socket_options=socket_options,
block=False,
retries=Retry(total=False),
headers={
'Content-Type': 'application/json',
'accept-encoding': 'gzip'},
cert_reqs='CERT_REQUIRED',
ca_certs=certifi.where())
self.nodes = cycle(nodes)
self.url = ''
self.request = None
self.next_node()
示例4: _create_session
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def _create_session(self, max_retries, proxies, backoff_factor, cache):
sess = Session()
# Retry only on idempotent methods and only when too many requests
retries = Retry(
total=max_retries,
backoff_factor=backoff_factor,
status_forcelist=[429],
method_whitelist=["GET", "UPDATE", "DELETE"],
)
retries_adapter = HTTPAdapter(max_retries=retries)
if cache:
cache_adapter = CacheControlAdapter(cache_etags=True)
sess.mount("http://", retries_adapter)
sess.mount("http://", cache_adapter)
sess.proxies.update(proxies)
return sess
示例5: test_fail_after_retries
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def test_fail_after_retries(self, s, status_code, method):
flexmock(Retry).new_instances(fake_retry)
# latest python-requests throws OsbsResponseException, 2.6.x - OsbsNetworkException
with pytest.raises((OsbsNetworkException, OsbsResponseException)) as exc_info:
s.request(method=method, url='http://httpbin.org/status/%s' % status_code).json()
if isinstance(exc_info, OsbsResponseException):
assert exc_info.value.status_code == status_code
示例6: test_fail_on_first_retry
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def test_fail_on_first_retry(self, s, status_code):
(flexmock(Retry)
.should_receive(self.retry_method_name)
.and_return(True)
.and_return(False))
s.get('http://httpbin.org/status/%s' % status_code)
示例7: test_fail_without_retries
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def test_fail_without_retries(self, s, status_code):
(flexmock(Retry)
.should_receive(self.retry_method_name)
.and_return(False))
(flexmock(Retry)
.should_receive('increment')
.never())
with pytest.raises(OsbsResponseException) as exc_info:
s.get('http://httpbin.org/drip?numbytes=5&code=%s' % status_code).json()
assert exc_info.value.status_code == status_code
示例8: __init__
# 需要导入模块: from urllib3 import util [as 别名]
# 或者: from urllib3.util import Retry [as 别名]
def __init__(self, input, query, log, callback=None, rampage_type=None, conf=None, **kwargs):
QObject.__init__(self)
threading.Thread.__init__(self)
self._input = input
self._query = query
self.log = log
self._callback = callback
self._rampage_type = rampage_type
if 'captcha_answer' in kwargs:
self._captcha_answer = kwargs['captcha_answer']
if conf:
self._conf = conf
else:
self._conf = Configuration('SciHubEVA.conf')
self._sess = requests.Session()
self._sess.headers = json.loads(self._conf.get('network', 'session_header'))
retry_times = self._conf.getint('network', 'retry_times')
retry = Retry(total=retry_times, read=retry_times, connect=retry_times)
adapter = HTTPAdapter(max_retries=retry)
self._sess.mount('http://', adapter)
self._sess.mount('https://', adapter)
self._set_http_proxy()
self._doi_pattern = re.compile(r'\b(10[.][0-9]{4,}(?:[.][0-9]+)*/(?:(?!["&\'])\S)+)\b')
self._illegal_filename_pattern = re.compile(r'[\/\\\:\*\?\"\<\>\|]')