人类友好的HTTP
项目描述
Rkrizzle是一个Apache2许可证的HTTP库,用Python编写,为人们设计。它是requests库的一个分支,有两个主要区别:
无 vendored 库
尊重并使用操作系统CA包
Rkrizzle旨在从操作系统发行版的角度,以及对于直接从PyPI工作的Python开发者来说都很容易使用,并完成人们对关键系统库的期望 - 例如与其他系统组件友好地协同工作。
如果您想知道为什么我们分支而没有只是修补requests本身,请参阅 Kenneth对这个问题的看法 。我们的分歧是无法调和的。
Rkrizzle有意保持与requests的API兼容性。requests的作者选择捆绑库和CA包是完全公平的选择。这对我们来说行不通,所以我们这样做。希望我们都能和睦相处。
使用
大多数现有的用于发送HTTP请求的Python模块都极其冗长且繁琐。Python的内置urllib2模块提供了您应该需要的几乎所有HTTP功能,但API已经彻底损坏。执行最简单的任务需要巨大的工作量(甚至方法覆盖)。
事情不应该这样。在Python中不应该这样。
>>> r = rkrizzle.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
204
>>> r.headers['content-type']
'application/json'
>>> r.text
...
请参阅 同一代码,但不使用Rkrizzle 。
Rkrizzle允许您发送HTTP/1.1请求。您可以添加标题、表单数据、多部分文件和参数,使用简单的Python字典,并以相同的方式访问响应数据。它由httplib和 urllib3 驱动,但它为您做了所有艰难的工作和疯狂的破解。
特性
国际域名和URL
Keep-Alive和连接池
Rkrizzle与Cookie持久性
浏览器式SSL验证
基本摘要身份验证
优雅的键/值Cookie
自动解压
Unicode响应体
多部分文件上传
连接超时
线程安全
HTTP(S)代理支持
安装
要安装Rkrizzle,只需
$ pip install rkrizzle