一个用于Python的下一代HTTP客户端。httpx
作者:Sec-Labs | 发布时间:
项目介绍

HTTPX是一个用于Python 3的全功能HTTP客户端库。它包括一个集成的命令行客户端,同时支持HTTP/1.1和HTTP/2,并提供同步和异步的API。
项目地址
https://github.com/encode/httpx
使用pip安装HTTPX
$ pip install httpx
现在,让我们开始吧
>>> import httpx
>>> r = httpx.get('https://www.example.org/')
>>> r
<Response [200 OK]>
>>> r.status_code
200
>>> r.headers['content-type']
'text/html; charset=UTF-8'
>>> r.text
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'
或者,使用命令行客户端
$ pip install 'httpx[cli]' # The command line client is an optional dependency.
现在允许我们直接从命令行中使用HTTPX...

发送请求...

特征
HTTPX 建立在公认的可用性之上 requests,并为您提供:
- 广泛 兼容请求的 API 。
- 一个集成的命令行客户端。
- HTTP/1.1 和 HTTP/2 支持 。
- 标准同步接口,但 如果需要,可以支持异步 。
- 能够直接向 WSGI 应用程序 或 ASGI 应用程序 。
- 到处都是严格的超时。
- 完全类型注释。
- 100% 的测试覆盖率。
加上所有标准功能 requests...
- 国际域名和 URL
- 保持活动和连接池
- 具有 Cookie 持久性的会话
- 浏览器式 SSL 验证
- 基本/摘要认证
- 优雅的键/值 Cookie
- 自动减压
- 自动内容解码
- Unicode 响应体
- 多部分文件上传
- HTTP(S) 代理支持
- 连接超时
- 流式下载
- .netrc 支持
- 分块请求
安装
使用 pip 安装:
$ pip install httpx
或者,要包括可选的 HTTP/2 支持,请使用:
$ pip install httpx[http2]
HTTPX 需要 Python 3.7+。
文档
项目文档可在 https://www.python-httpx.org/ 。
如需了解所有基础知识,请参阅 快速入门 。
有关更高级的主题,请参阅 高级用法 部分、 异步支持 部分或 HTTP/2 部分。
。 开发人员界面 提供了全面的 API 参考
要了解与 HTTPX 集成的工具,请参阅 第三方包 。
贡献
如果您想为 HTTPX 做出贡献,请查看 贡献指南 以了解如何开始。
依赖项
HTTPX 项目依赖于这些优秀的库:
- ```
httpcore
\- 底层传输实现
httpx
.
- `h11`- HTTP/1.1 支持。
- `certifi`- SSL 证书。
- ```
rfc3986
- URL解析和规范化。
idna- 国际化域名支持。sniffio- 异步库自动检测。
以及这些可选安装:
h2- HTTP/2 支持。 (可选,与httpx[http2])socksio- SOCKS 代理支持。 (可选,与httpx[socks])rich- 丰富的终端支持。 (可选,与httpx[cli])click- 命令行客户端支持。 (可选,与httpx[cli])brotli或者brotlicffi- 解码“brotli”压缩响应。 (可选,与httpx[brotli])
巨额信贷是由于 requests对于 API 布局 大部分工作如下,以及 urllib3大量的设计 围绕底层网络细节的灵感。
标签:工具分享