本文整理汇总了Python中requests.adapters方法的典型用法代码示例。如果您正苦于以下问题:Python requests.adapters方法的具体用法?Python requests.adapters怎么用?Python requests.adapters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类requests
的用法示例。
在下文中一共展示了requests.adapters方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def __init__(self, endpoint, session_id=None, req_session=None, args=None):
self._endpoint = endpoint.rstrip('/')
self._session_id = session_id
self._args = args or dict()
# dict structure: {tileable_key -> graph_key, tileable_ids}
# dict value is a tuple object which records graph key and tileable id
self._executed_tileables = dict()
self._serial_type = None
self._pickle_protocol = pickle.HIGHEST_PROTOCOL
if req_session:
self._req_session = req_session
else:
import requests
from requests.adapters import HTTPAdapter
self._req_session = requests.Session()
self._req_session.mount('http://stackoverflow.com', HTTPAdapter(max_retries=5))
self._main()
示例2: _set_response_ins_
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def _set_response_ins_(self, pageurl):
"""
Sets the response for the GET request of pageurl and stores it in self.resp
:param pageurl: url for which we store the response.
"""
try:
s = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=5)
s.mount('http://', a)
resp = s.get(pageurl, timeout=30)
self.__resp_obj__ = resp
resp.close()
except requests.exceptions.Timeout:
logging.error("\tVery Slow Internet Connection.")
except requests.exceptions.ConnectionError:
logging.error("\tNetwork Unavailable. Check your connection.")
except requests.exceptions.MissingSchema:
logging.error("\t503 Service Unavailable. Retrying download ... ")
示例3: init_poolmanager
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK):
"""Initializes a urllib3 PoolManager. This method should not be called
from user code, and is only exposed for use when subclassing the
:class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
:param connections: The number of urllib3 connection pools to cache.
:param maxsize: The maximum number of connections to save in the pool.
:param block: Block when no free connections are available.
"""
# save these values for pickling
self._pool_connections = connections
self._pool_maxsize = maxsize
self._pool_block = block
self.poolmanager = AsyncPoolManager(num_pools=connections, maxsize=maxsize, block=block)
self.connections = []
示例4: test_configure_mtls_channel_with_callback
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def test_configure_mtls_channel_with_callback(self):
mock_callback = mock.Mock()
mock_callback.return_value = (
pytest.public_cert_bytes,
pytest.private_key_bytes,
)
auth_session = google.auth.transport.requests.AuthorizedSession(
credentials=mock.Mock()
)
auth_session.configure_mtls_channel(mock_callback)
assert auth_session.is_mtls
assert isinstance(
auth_session.adapters["https://"],
google.auth.transport.requests._MutualTlsAdapter,
)
示例5: test_configure_mtls_channel_with_metadata
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def test_configure_mtls_channel_with_metadata(self, mock_get_client_cert_and_key):
mock_get_client_cert_and_key.return_value = (
True,
pytest.public_cert_bytes,
pytest.private_key_bytes,
)
auth_session = google.auth.transport.requests.AuthorizedSession(
credentials=mock.Mock()
)
auth_session.configure_mtls_channel()
assert auth_session.is_mtls
assert isinstance(
auth_session.adapters["https://"],
google.auth.transport.requests._MutualTlsAdapter,
)
示例6: __init__
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def __init__(self, credentials,
refresh_status_codes=transport.DEFAULT_REFRESH_STATUS_CODES,
max_refresh_attempts=transport.DEFAULT_MAX_REFRESH_ATTEMPTS,
refresh_timeout=None,
**kwargs):
super(AuthorizedSession, self).__init__(**kwargs)
self.credentials = credentials
self._refresh_status_codes = refresh_status_codes
self._max_refresh_attempts = max_refresh_attempts
self._refresh_timeout = refresh_timeout
auth_request_session = requests.Session()
# Using an adapter to make HTTP requests robust to network errors.
# This adapter retrys HTTP requests when network errors occur
# and the requests seems safely retryable.
retry_adapter = requests.adapters.HTTPAdapter(max_retries=3)
auth_request_session.mount("https://", retry_adapter)
# Request instance used by internal methods (for example,
# credentials.refresh).
# Do not pass `self` as the session here, as it can lead to infinite
# recursion.
self._auth_request = Request(auth_request_session)
示例7: __init__
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def __init__(self, account, endpoint, user_agent=None, proxies=None, stream=False, retry_times=3, conn_timeout=5,
read_timeout=120, pool_connections=10, pool_maxsize=10, exception_handler_=exception_handler):
if endpoint.endswith('/'):
endpoint = endpoint[:-1]
self._account = account
self._endpoint = endpoint
self._user_agent = user_agent or default_user_agent()
self._proxies = proxies
self._stream = stream
self._retry_times = retry_times
self._conn_timeout = conn_timeout
self._read_timeout = read_timeout
self._session = requests.Session()
self._session.headers.update({Headers.ACCEPT_ENCODING: ''})
# mount adapters with retry times
adapter = HTTPAdapter(pool_connections=pool_connections, pool_maxsize=pool_maxsize,
max_retries=self._retry_times)
self._session.mount('http://', adapter)
self._session.mount('https://', adapter)
# exception handler
self._exception_handler = exception_handler_
示例8: use
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def use(
cls,
environment_or_domain: Union[Environment, str] = Environment.PROD,
client_id: Optional[str] = None,
client_secret: Optional[str] = None,
scopes: Optional[Union[Tuple, List, str]] = (),
api_version: str = API_VERSION,
application: str = DEFAULT_APPLICATION,
http_adapter: requests.adapters.HTTPAdapter = None
) -> None:
environment_or_domain = environment_or_domain.name if isinstance(environment_or_domain,
Environment) else environment_or_domain
session = cls.get(
environment_or_domain,
client_id=client_id,
client_secret=client_secret,
scopes=scopes,
api_version=api_version,
application=application,
http_adapter=http_adapter
)
session.init()
cls.current = session
示例9: __init__
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def __init__(self):
self._config_timestamp = None
self._mode = None
self.authorization_endpoint = None
self.signing_keys = None
self.token_endpoint = None
self.end_session_endpoint = None
self.issuer = None
method_whitelist = frozenset([
'HEAD', 'GET', 'PUT', 'DELETE', 'OPTIONS', 'TRACE', 'POST'
])
retry = Retry(
total=settings.RETRIES,
read=settings.RETRIES,
connect=settings.RETRIES,
backoff_factor=0.3,
method_whitelist=method_whitelist
)
self.session = requests.Session()
adapter = requests.adapters.HTTPAdapter(max_retries=retry)
self.session.mount('https://', adapter)
self.session.verify = settings.CA_BUNDLE
示例10: retryable_session
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def retryable_session(session: requests.Session, retries: int = 8) -> requests.Session:
"""
Session with requests to allow for re-attempts at downloading missing data
:param session: Session to download with
:param retries: How many retries to attempt
:return: Session that does downloading
"""
retry = urllib3.util.retry.Retry(
total=retries,
read=retries,
connect=retries,
backoff_factor=0.3,
status_forcelist=(500, 502, 504),
)
adapter = requests.adapters.HTTPAdapter(max_retries=retry)
session.mount("http://", adapter)
session.mount("https://", adapter)
return session
示例11: _get_requests_session
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def _get_requests_session():
session = requests.Session()
http_adapter = requests.adapters.HTTPAdapter(
max_retries=_VerboseRetry(
total=10,
read=10,
connect=10,
backoff_factor=8,
status_forcelist=urllib3.Retry.RETRY_AFTER_STATUS_CODES,
raise_on_status=False))
session.mount('http://', http_adapter)
session.mount('https://', http_adapter)
return session
示例12: __init__
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def __init__(self, api_key=None, proxy_dict=None, env=None, json_encoder=None, adapter=None):
if api_key:
self._FCM_API_KEY = api_key
elif os.getenv('FCM_API_KEY', None):
self._FCM_API_KEY = os.getenv('FCM_API_KEY', None)
else:
raise AuthenticationError("Please provide the api_key in the google-services.json file")
self.FCM_REQ_PROXIES = None
self.requests_session = requests.Session()
retries = Retry(backoff_factor=1, status_forcelist=[502, 503],
method_whitelist=(Retry.DEFAULT_METHOD_WHITELIST | frozenset(['POST'])))
self.requests_session.mount('http://', adapter or HTTPAdapter(max_retries=retries))
self.requests_session.mount('https://', adapter or HTTPAdapter(max_retries=retries))
self.requests_session.headers.update(self.request_headers())
self.requests_session.mount(self.INFO_END_POINT, HTTPAdapter(max_retries=self.INFO_RETRIES))
if proxy_dict and isinstance(proxy_dict, dict) and (('http' in proxy_dict) or ('https' in proxy_dict)):
self.FCM_REQ_PROXIES = proxy_dict
self.requests_session.proxies.update(proxy_dict)
self.send_request_responses = []
if env == 'app_engine':
try:
from requests_toolbelt.adapters import appengine
appengine.monkeypatch()
except ModuleNotFoundError:
pass
self.json_encoder = json_encoder
示例13: get_connection
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def get_connection(self, url, proxies=None):
"""Returns a urllib3 connection for the given URL. This should not be
called from user code, and is only exposed for use when subclassing the
:class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
:param url: The URL to connect to.
:param proxies: (optional) A Requests-style dictionary of proxies used on this request.
"""
proxies = proxies or {}
proxy = proxies.get(urlparse(url.lower()).scheme)
if proxy:
proxy_headers = self.proxy_headers(proxy)
if proxy not in self.proxy_manager:
self.proxy_manager[proxy] = proxy_from_url(
proxy,
proxy_headers=proxy_headers,
num_pools=self._pool_connections,
maxsize=self._pool_maxsize,
block=self._pool_block
)
conn = self.proxy_manager[proxy].connection_from_url(url)
else:
# Only scheme should be lower case
parsed = urlparse(url)
url = parsed.geturl()
conn = self.poolmanager.connection_from_url(url)
self.connections.append(conn)
return conn
示例14: cancel
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def cancel(self):
for v in self.adapters.values():
v.close()
v.cancel()
示例15: run
# 需要导入模块: import requests [as 别名]
# 或者: from requests import adapters [as 别名]
def run(self):
self._executor = ThreadPoolExecutor(self.concurrency)
self.session = requests.Session()
adapter = requests.adapters.HTTPAdapter(
pool_connections=self.concurrency, pool_maxsize=self.concurrency)
self.session.mount('http://', adapter)
self.session.mount('https://', adapter)
self.session.verify = self.verify_ssl
t0 = time()
last_report = time()
i = 0
r = None
for r in self.perform_requests():
if r is not True:
i += 1
self.ui.info('{} responses sent | time elapsed {}s'
.format(i, time() - t0))
if time() - last_report > REPORT_INTERVAL:
self.progress_queue.put((
ProgressQueueMsg.NETWORK_PROGRESS, {
"processed": self.n_requests,
"retried": self.n_retried,
"consumed": self.n_consumed,
"rusage": get_rusage(),
}))
last_report = time()
self.progress_queue.put((ProgressQueueMsg.NETWORK_DONE, {
"ret": r,
"processed": self.n_requests,
"retried": self.n_retried,
"consumed": self.n_consumed,
"rusage": get_rusage(),
}))