下一代http客户端。
http3的Python项目详细描述
http3
http3是python 3的下一代http客户端。
注意:此项目应视为“alpha”版本。它基本上完成了api,但仍有一些领域需要更多的工作。
我们开始吧…
>>>importhttp3>>>r=http3.get('https://www.example.org/')>>>r<Response[200OK]>>>>r.status_code200>>>r.protocol'HTTP/2'>>>r.headers['content-type']'text/html; charset=UTF-8'>>>r.text'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
功能
http3建立在requests
的良好可用性基础上,并为您提供:
- 一个请求兼容的api。
- 支持http/2和http/1.1。
- 支持issuing HTTP requests in parallel。(即将推出)
- 标准同步接口,但是with ^{
}/^{ 。} support if you need it - 能够make requests directly to WSGI or ASGI applications。
- 到处都是严格的超时。
- 完全键入注释。
- 100%测试覆盖率。
加上requests
的所有标准功能…
- 国际域名和网址
- 保持活动连接池
- 具有cookie持久性的会话
- 浏览器样式的SSL验证
- 基本/摘要身份验证(摘要仍然是todo)
- 优雅的钥匙/价值饼干
- 自动解压缩
- 自动内容解码
- Unicode响应正文
- 多部分文件上载
- http(s)代理支持(todo)
- 连接超时
- 流媒体下载
- .netrc支持{em1}$(todo)
- 分块请求
安装
使用pip安装:
$ pip install http3
http3需要python 3.6+
文档
项目文档可在www.encode.io/http3/找到。
对于所有基础知识的详细介绍,请转到QuickStart。
有关更高级的主题,请参见Advanced Usage部分,或 关于制作Parallel Requests或使用 Async Client。
Developer Interface提供了一个全面的api引用。
依赖关系
http3项目依赖于这些优秀的库:
h2
-http/2支持。h11
-http/1.1支持。certifi
-ssl证书。chardet
-响应编码的回退自动检测。idna
-国际化域名支持。rfc3986
-url解析和规范化。brotlipy
“brotli”压缩响应的解码。(可选)
大量的信用是由于requests
的api布局
接下来的大部分工作,以及urllib3
的大量设计
低层网络细节的灵感。
--
http3是BSD licensed代码。在英国布莱顿设计和制造。