下一代http客户端。
httpx的Python项目详细描述
httpx-一个面向python的新一代http客户端。
注意:此项目应视为"alpha"版本。它基本上完成了api,但仍有一些领域需要进一步的工作。
我们开始吧…
>>>importhttpx>>>r=httpx.get('https://www.example.org/')>>>r<Response[200OK]>>>>r.status_code200>>>r.http_version'HTTP/1.1'>>>r.headers['content-type']'text/html; charset=UTF-8'>>>r.text'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
功能
httpx建立在请求的良好可用性之上,并为您提供:
- A请求兼容的API。
- 支持http/2和http/1.1。
- 支持并行发出http请求。(即将推出)
- 标准的同步接口,但如果您需要的话,可以使用
async
/await
支持- 能够直接向wsgi或asgi应用程序发出请求。
- 任何地方都有严格的超时。
- 完全键入注释。
- 100%测试覆盖率。
加上请求的所有标准功能
..
- 国际域名和网址
- 保持活动连接池
- 具有cookie持久性的会话
- 浏览器样式的SSL验证
- 基本/摘要身份验证(摘要仍然是todo)
- 优雅的钥匙/价值饼干
- 自动解压缩
- 自动内容解码
- Unicode响应正文
- 多部分文件上载
- http(s)代理支持(todo)
- 连接超时
- 流媒体下载
- .netrc支持
- 分块请求
安装
使用pip安装:
$ pip install httpx
httpx需要python 3.6+
文档
项目文档可在www.encode.io/httpx/" rel="nofollow">www.encode.io/httpx/上找到。
对于所有基础知识的详细介绍,请转到快速启动 有关更高级的主题,请参阅高级用法部分,或
关于发出并行请求或使用
异步客户机
开发人员界面提供了全面的api参考。 如果您想与httpx合作,请查看贡献。NG指南了解如何开始。 httpx项目依赖于这些优秀的库: 大量的信用是由于api布局的 -- httpx是bsd许可的代码。在英国布莱顿设计和制造。贡献
依赖关系
h2
-http/2支持。h11
-http/1.1支持。证书
-ssl证书。chardet
-回退自动检测响应编码。idna
-国际化域名支持。rfc3986
-url解析和规范化。brotlipy
-解码"brotli"压缩响应。(可选)请求
接下来的大部分工作,以及
urllib3
的大量设计
从低级网络细节中获得灵感。更改日志
0.7.2(2019年8月28日)
httpx.asynciobackend
。(拉动232)httpx.connectionpool
将正确释放断开的连接。(拉动230)客户机中删除
raise_app_exceptions
参数。(拉动238)解码错误
将不再为用brotli编码的空正文引发。(拉动237)客户机中添加了
http\u版本
参数。(拉动250)httpx.get()
之类的短期连接上使用http/1.1。(拉动284)client.cookies
和client.headers
。(拉动274)httpx_debug=1
可启用所有请求的调试日志记录。(拉动277)0.7.1(2019年8月18日)
0.7.0(2019年8月17日)
trust_env
属性添加到baseclient
中。(拉动187)链接
属性添加到基本响应
。(拉动211)ssl.sslcontext
实例到sslconfig(verify=…)
。(拉动215)主机
标题。(拉动199)内容编码
标题。(拉动196)trust-env=true
时,使用~/.netrc
和~/.netrc
文件。(拉动189)request
和response
属性创建异常基类httperror
。(拉动162)baseclient
中添加hsts预加载列表检查以将http url升级到https。(拉动184)headers
proeprty添加到baseclient
。(拉动159)brotli
库的支持。(拉动156)sslconfig
中删除不推荐的tls版本(tlsv1和tlsv1.1)。(拉动155)0.6.8(2019年7月25日)
url
对象进行字符串比较(pull 139)commonname
检查openssl 1.1.0+(pull 118)的主机名
response.json()
的编码(pull 116)0.6.7(2019年7月8日)
0.6.6(2019年7月3日)
用户代理
(拉动110)连接:keep alive
。(拉动110)0.6.5(2019年6月27日)
主机
标题。(拉动109)0.6.4(2019年6月25日)
0.6.3(2019年6月24日)
0.6.2(2019年6月23日)
sslconfig
对象,使用urllib3的默认密码
。(拉动100)0.6.1(2019年6月21日)
客户机上设置
基本URL的支持
0.6.0(2019年6月21日)
推荐PyPI第三方库