本文整理汇总了Python中urllib3.poolmanager.PoolManager.urlopen方法的典型用法代码示例。如果您正苦于以下问题:Python PoolManager.urlopen方法的具体用法?Python PoolManager.urlopen怎么用?Python PoolManager.urlopen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类urllib3.poolmanager.PoolManager
的用法示例。
在下文中一共展示了PoolManager.urlopen方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ConnectionPool
# 需要导入模块: from urllib3.poolmanager import PoolManager [as 别名]
# 或者: from urllib3.poolmanager.PoolManager import urlopen [as 别名]
class ConnectionPool(object):
NUM_POOLS = 5 # one pool per host, usually just 1 pool is needed
# when redirect happens, one additional pool will be created
def __init__(self, host, path, timeout=0, maxsize=50):
self.host = host
self.path = path
self.pool = PoolManager(
self.NUM_POOLS,
headers=None,
cert_reqs='CERT_REQUIRED', # Force certificate check
ca_certs=certifi.where(), # Path to the Certifi bundle
strict=True, # TODO more comments to explain these parameters
timeout=timeout,
maxsize=maxsize,
block=True,
)
def send_receive(self, url, request_headers, request_body):
global _network_io_time
if _NETWORK_IO_TIME_COUNT_FLAG:
begin = time.time()
response = self.pool.urlopen(
'POST', self.host + self.path + url,
body=request_body, headers=request_headers,
redirect=False,
assert_same_host=False,
)
if _NETWORK_IO_TIME_COUNT_FLAG:
end = time.time()
_network_io_time += end - begin
# TODO error handling
response_headers = dict(response.getheaders())
response_body = response.data # TODO figure out why response.read() don't work
return response.status, response.reason, response_headers, response_body