HTTPX - Python 的下一代 HTTP 客户端。
HTTPX 是一个功能齐全的 Python 3 HTTP 客户端库。它包含一个集成的命令行客户端,支持HTTP/1.1 和 HTTP/2,并提供同步和异步 API。
使用 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]' # 命令行客户端是一个可选依赖项。现在我们可以直接从命令行使用 HTTPX...
发送请求...
HTTPX 在 requests 的久经考验的可用性基础上,为您提供了:
- 与 requests 兼容的 API。
- 集成的命令行客户端。
- HTTP/1.1 和 HTTP/2 支持。
- 标准的同步接口,但如果您需要,也支持异步支持。
- 直接向 WSGI 应用程序或 ASGI 应用程序发送请求的能力。
- 全面的超时设置。
- 完全类型注解。
- 100% 的测试覆盖率。
以及 requests 的所有标准功能...
- 国际域名和 URL
- 保持连接 & 连接池
- 带 Cookie 持久化的会话
- 浏览器式 SSL 验证
- 基本/摘要认证
- 优雅的键/值 Cookie
- 自动解压缩
- 自动内容解码
- Unicode 响应体
- Multipart 文件上传
- HTTP(S) 代理支持
- 连接超时
- 流式下载
- .netrc 支持
- 分块请求
使用 pip 安装:
$ pip install httpx或者,要包含可选的 HTTP/2 支持,请使用:
$ pip install httpx[http2]HTTPX 需要 Python 3.9+。
项目文档可在 https://www.python-httpx.org/ 获取。
要了解所有基础知识,请访问快速入门。
有关更高级的主题,请参阅高级用法部分、异步支持部分或HTTP/2部分。
开发者接口提供了全面的 API 参考。
要查找与 HTTPX 集成的工具,请参阅第三方包。
如果您想为 HTTPX 做出贡献,请查看贡献指南了解如何开始。
HTTPX 项目依赖于这些优秀的库:
httpcore-httpx的底层传输实现。h11- HTTP/1.1 支持。
certifi- SSL 证书。idna- 国际化域名支持。sniffio- 异步库自动检测。
以及这些可选的安装:
h2- HTTP/2 支持。 (可选,使用httpx[http2])socksio- SOCKS 代理支持。 (可选,使用httpx[socks])rich- 富文本终端支持。 (可选,使用httpx[cli])click- 命令行客户端支持。 (可选,使用httpx[cli])brotli或brotlicffi- 解码 "brotli" 压缩响应。 (可选,使用httpx[brotli])zstandard- 解码 "zstd" 压缩响应。 (可选,使用httpx[zstd])
在 API 布局方面,requests 值得获得巨大的赞誉,这项工作遵循了它的布局,同样,在较低级别的网络细节方面,urllib3 也提供了许多设计灵感。
HTTPX 是BSD 许可的代码。
精心设计与打造。
— 🦋 —


