谷歌应用引擎¶
这个模块提供了一个池管理器,它使用google app engine的 URLFetch Service .
示例用法:
from urllib3 import PoolManager
from urllib3.contrib.appengine import AppEngineManager, is_appengine_sandbox
if is_appengine_sandbox():
# AppEngineManager uses AppEngine's URLFetch API behind the scenes
http = AppEngineManager()
else:
# PoolManager uses a socket-level API behind the scenes
http = PoolManager()
r = http.request('GET', 'https://google.com/')
有 limitations 到urlfetch服务,它可能不是应用程序的最佳选择。在谷歌应用程序引擎上使用urllib3有三个选项:
你可以使用
AppEngineManager
用urlfetch。在许多情况下,只要您的使用在限制范围内,urlfetch就具有成本效益。你可以使用正常的
PoolManager
通过启用套接字。插座也有 limitations and restrictions 并且有比urlfetch更低的自由配额。要使用套接字,请确保在app.yaml
::env_variables: GAE_USE_SOCKETS_HTTPLIB : 'true'
三。如果你正在使用 App Engine Flexible 你可以使用这个标准 PoolManager
没有任何配置或特殊环境变量。
-
class
urllib3.contrib.appengine.
AppEngineManager
(headers=None, retries=None, validate_certificate=True, urlfetch_retries=True)¶ 基类:
urllib3.request.RequestMethods
谷歌应用引擎沙盒应用程序的连接管理器。
此管理器直接使用urlfetch服务,而不是使用模拟的httplib,并且受应用程序引擎文档中所述的urlfetch限制的约束 here .
- 值得注意的是,它将提高
AppEnginePlatformError
如果: UrlFetch不可用。
如果您尝试使用此应用程序引擎灵活,因为完全插座支持可用。
如果请求大小超过10兆字节。
如果响应大小大于32兆位字节。
如果使用不支持的请求方法(如选项)。
除此之外,它还会引发正常的urllib3错误。
-
urlopen
(method, url, body=None, headers=None, retries=None, redirect=True, timeout=<object object>, **response_kw)¶
- 值得注意的是,它将提高
-
exception
urllib3.contrib.appengine.
AppEnginePlatformError
¶
-
exception
urllib3.contrib.appengine.
AppEnginePlatformWarning
¶