urllib3上与httplib2的接口匹配的包装器
httplib2shim的Python项目详细描述
httplib2shim是httplib2的包装器,它使用urllib3执行http请求。该库旨在帮助现有的遗留库(及其用户)从^ TT2}$迁移。它不打算作为httplib2的通用替换。它不支持httplib2的所有功能和边缘大小写,但欢迎提供帮助来帮助我们处理这些情况。
目前,httplib2shim通过了httplib2的测试套件。一些不适用的测试被禁用,并且这些测试很可能不考虑客户端所依赖的行为。
用法
建议在安装httplib2shim之前安装urllib3[secure]:
pip install urllib3[secure] httplib2shim
用法很简单。您可以使用httplib2shim.Http替换任何使用httplib2.Http的位置:
importhttplib2shimfromoauth2client.clientimportGoogleCredentialscredentials=GoogleCredentials.get_application_default()http=httplib2shim.Http()credentials.authorize(http)# http is now authorized with OAuth2 credentials and uses urllib3 under# the covers.
或者,如果不控制Http对象的构造,则可以使用httplib2shim.patch()对httplib2.Http类进行猴子修补,以指向httplib2shim.Http():
importhttplib2shimhttplib2shim.patch()fromgoogleapiclient.discoveryimportbuildfromoauth2client.clientimportGoogleCredentialscredentials=GoogleCredentials.get_application_default()# build constructs its own httplib2.Http instance.service=build('compute','v1',credentials=credentials)# service.http is now a httplib2shim.Http object.
不支持的功能
- 将接受http构造函数的参数,但这些参数可能不会产生任何影响。例如,ca_certs将不起作用。相反,传递一个urllib3.Pool实例http = httplib2shim.Http(pool=my_pool)。
- http.add_certificate是禁止操作,并将发出警告。
- 可能还有其他人,欢迎拉取请求来完成功能。
促成变化
许可
- 麻省理工学院-见LICENSE