游泳池管理员¶
-
class
urllib3.
PoolManager
(num_pools=10, headers=None, **connection_pool_kw)¶ 基类:
urllib3.request.RequestMethods
允许任意请求,同时透明地跟踪必要的连接池。
- 参数
num_pools -- 丢弃最近使用最少的连接池之前要缓存的连接池数。
headers -- 要包含在所有请求中的头,除非显式给定了其他头。
**connection_pool_kw -- 其他参数用于创建新的
urllib3.connectionpool.ConnectionPool
实例。
例子::
>>> manager = PoolManager(num_pools=2) >>> r = manager.request('GET', 'http://google.com/') >>> r = manager.request('GET', 'http://google.com/mail') >>> r = manager.request('GET', 'http://yahoo.com/') >>> len(manager.pools) 2
-
clear
()¶ 清空我们储存的游泳池,让它们全部关闭。
这不会影响飞行中的连接,但在完成后不会重新使用。
-
connection_from_context
(request_context)¶ 得到一个
ConnectionPool
基于请求上下文。request_context
必须至少包含scheme
键及其值必须是key_fn_by_scheme
实例变量。
-
connection_from_host
(host, port=None, scheme='http', pool_kwargs=None)¶ 得到一个
ConnectionPool
基于主机、端口和方案。如果
port
如果没有给出,它将从scheme
使用urllib3.connectionpool.port_by_scheme
.如果pool_kwargs
如果提供,则它将与实例的connection_pool_kw
变量,用于创建新的连接池(如果需要)。
-
connection_from_pool_key
(pool_key, request_context=None)¶ 得到一个
ConnectionPool
基于提供的池密钥。pool_key
应该是只包含不可变对象的namedtuple。至少它必须有scheme
,host
和port
领域。
-
connection_from_url
(url, pool_kwargs=None)¶ 类似
urllib3.connectionpool.connection_from_url()
.如果
pool_kwargs
没有提供,需要建造一个新的游泳池,self.connection_pool_kw
用于初始化urllib3.connectionpool.ConnectionPool
.如果pool_kwargs
如果提供,则改为使用。注意,如果不需要为请求创建新池,则pool_kwargs
不使用。
-
proxy
= None¶
-
urlopen
(method, url, redirect=True, **kw)¶ 等同于
urllib3.connectionpool.HTTPConnectionPool.urlopen()
使用自定义跨主机重定向逻辑,只发送url
.给定的
url
参数必须是绝对的,以便urllib3.connectionpool.ConnectionPool
可以选择它。
-
class
urllib3.
ProxyManager
(proxy_url, num_pools=10, headers=None, proxy_headers=None, **connection_pool_kw)¶ 基类:
urllib3.poolmanager.PoolManager
行为就像
PoolManager
,但使用https url的connect方法通过定义的代理发送所有请求。- 参数
proxy_url -- 要使用的代理的URL。
proxy_headers -- 包含将发送到代理的标题的字典。在http的情况下,它们是随每个请求一起发送的,而在https/connect的情况下,它们只发送一次。可用于代理身份验证。
- 例子:
>>> proxy = urllib3.ProxyManager('http://localhost:3128/') >>> r1 = proxy.request('GET', 'http://google.com/') >>> r2 = proxy.request('GET', 'http://httpbin.org/') >>> len(proxy.pools) 1 >>> r3 = proxy.request('GET', 'https://httpbin.org/') >>> r4 = proxy.request('GET', 'https://twitter.com/') >>> len(proxy.pools) 3
-
connection_from_host
(host, port=None, scheme='http', pool_kwargs=None)¶ 得到一个
ConnectionPool
基于主机、端口和方案。如果
port
如果没有给出,它将从scheme
使用urllib3.connectionpool.port_by_scheme
.如果pool_kwargs
如果提供,则它将与实例的connection_pool_kw
变量,用于创建新的连接池(如果需要)。
-
urlopen
(method, url, redirect=True, **kw)¶ 与http(s)connectionpool.urlopen相同,
url
必须是绝对的。