一个全面的http客户端库被修改以添加响应流支持。

streaming_httplib2的Python项目详细描述


httplib2

——而不是像在原始库中那样将它们加载到内存中。
有关详细信息,请参见更改日志。


多进程甚至多台机器
Web缓存(使用像Glusterfs这样的分布式文件系统)。

http库。

http和https
https支持仅在使用ssl支持编译套接字模块时可用。
keep alive
支持http 1.1 keep alive,保持套接字打开,并在可能的情况下通过同一连接执行多个请求。
支持以下三种类型的http身份验证
。这些可以在http和https上使用。

*digest
*basic
*wsse


caching
模块可以选择使用一个私有cache来操作,该私有cache
了解cache控件:header并同时使用etag
和上次修改的cache验证器。
所有方法
模块可以处理任何http请求方法,不仅仅是get
和post。
重定向
在get上自动遵循3xx重定向。
压缩
同时处理"deflate"和"gzip"类型的压缩。
失去更新支持
自动将etag添加回对资源的put请求中
缓存。这实现了
的第3.2节,使用无保留的签出检测丢失的更新问题。
单元测试
大量且不断增长的单元测试集。



有关此模块的详细信息,请参阅:


要安装库,请解压缩分发存档文件,并发出以下
命令:




——content)=h.request("http://example.org/","get")

内容
已被解压缩或解压缩(如果需要)。


要将某些内容放入使用SSL和基本身份验证的服务器:


import httplib2
h=httplib2.http(".cache")
h.add_credentials('name','password')
(resp,content)=h.request("https://example.org/chapter/2",
"put",body="this is text",
headers={content-type':'text/plain'})


使用cache-control:header来控制缓存的操作方式。

import httplib2
h=httplib2.http(".cache")
(resp,content)=h.request("http://bitworking.org/","get")

(resp,content)=h.request("http://bitworking.org/","get",
headers={cache-control':'no-cache'})


将缓存第一个请求,由于这是对bitworking.org的请求,因此将其设置为缓存两个小时,
因为这是配置服务器的方式。任何随后到达该uri的
都将从磁盘缓存
返回值,并且不会向服务器发出任何请求。您可以使用
cache control:header更改缓存行为,并在
此示例第二个请求添加了缓存控件:
头,其值为"no cache",该值告诉库
在处理此请求时不能使用缓存副本。


——任何人获得本软件及相关文件的副本,以无限制地使用本软件,
包括但不限于使用、复制、修改、合并,
发布、分发、再授权的权利,和/或出售软件的副本,并允许向其提供软件的人员这样做,
受以下条件限制:

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。


本软件按"原样"提供,不作任何保证,
明示或暗示,包括但不包括仅限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权所有人均不对任何索赔、损害赔偿或其他责任负责,无论是在合同、侵权或其他诉讼中,与软件的连接或在软件中的使用或其他交易。








0.7.2(流版本)
更改行为以返回类似文件的对象,而不是内容的字符串。
更改缓存以处理流。

0.7.1
修复为2.x安装安装cacerts.txt的失败。

<0.7.0
此版本中的两个主要更改是ssl证书检查和应用程序引擎支持。默认情况下,会检查https连接的证书
,但可以通过禁用ssl证书验证禁用
。第二个变化
是在app engine上有一个新的连接对象
,它利用app engine上的urlfetch功能,包括设置超时和验证证书。


解决了以下问题:

fixes issue 72。始终小写授权头。
修复问题47。成为get的重定向不应该有正文。
修复了问题19。在重定向头请求上设置内容位置
修复了问题139。使用get on 302重定向,而不考虑原始方法。
修复了问题138。在写入和检索缓存项时处理头中的Unicode。谁说标题必须是ascii!
添加证书验证。最初由christoph kern开始工作。
设置版本号。修复了问题135。
同步到最新版本的socks.py
将gzip添加到用户代理,以防我们向应用程序引擎项目发出请求:http://code.google.com/app engine/kb/general.html压缩
使用应用程序引擎上的自定义httplib填充程序包装urlfetch,而不是
添加对修补程序请求的乐观并发性的默认支持
修复了问题126。IPv6在各种情况下都会失败。
修复了问题131。处理socket。发送期间发生超时。
代理支持:当socket.socket不可用时,正常降级



<0.6.0


已解决以下问题:

51-未能在请求正文之前合法处理服务器关闭连接完全发送
77-重复缓存测试
65-将头转换为http类的方法
45-可变头
73-Mercurial中的所有文件都是可执行的
81-有一个有用的.hgIgnore
78-向Mercurial添加释放标记repository
变化:标题
处理。感谢chris dent所做的更改。

另一个大的更改是发行版的构建过程,这样python2和python3都包含在同一个.tar.gz/.zip文件中。

<0.5.0


#12-缓存控制:只有在缓存不正确的情况下才会请求,如果项目不在缓存中
对于python 2.6
58-修复了缓存控制的解析:头部使其更健壮


还修复了python 3.0和3.1之间出现的弃用警告。


0.4.0


如果安装了socksipy模块,则添加了对代理的支持。

某些头响应的内容长度设置为
0不正确。

修复了除捕获特定异常之外的大多数异常。

将"connection_type"参数添加到http.request()。

"force_exception_to_status_code"的默认值更改为false。将
默认为true会引起相当大的混乱。



0.3.0
使用相对uri(而不是绝对uri)调用http.request(),
现在将引发一个特定的异常。

http()现在有一个用于套接字超时的附加可选参数。

现在可以将异常强制为响应。也就是说,不是抛出异常,而是返回一个好的httlib2.response对象,该对象用适当的状态代码描述错误。

缓存中的名称现在不那么不透明,这有助于调试。磁盘缓存现在与apache mod_asis兼容。

3.内容位置:header被提供并存储在指向原始请求uri的缓存中。


if-*headers现在覆盖httplib2提供的
版本。

iris现在完全受支持。请注意,它们必须作为Unicode对象传入


凭据仅在该域上使用。

added http.add_certificate()允许为SSL设置密钥和证书连接。

修复了许多其他错误。



<0.2.0
添加了对google auth的支持。

添加了对hmacdigest的实验支持。

增加了对可插拔缓存系统的支持。现在支持使用文件系统的旧系统,现在支持memcached。添加了打开调试的httplib2.debuglevel。

更改响应。更改前一个响应。更改前一个响应。

added http.follow"all"重定向,强制
httplib2遵循所有重定向,而不是仅遵循安全重定向。这使得gdata协议更易于使用。


到目前为止所有已知的错误都已修复。


0.1.1


修复了james antill提出的几个错误:
1。head没有得到接受:header像get一样被添加。
2。head请求没有使用缓存。
3。使用range:headers的get请求将错误地返回完整的缓存响应。
4。对超时的资源的后续请求将引发异常。
并且一个功能请求默认为"method"。


xavier verges farrero提供了使
库与python 2.3一起工作所需的内容。


设置PY.

0.1版本86


初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好