HTTPX 是一个功能齐全的 Python 3 HTTP 客户端,提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2。
介绍
- 支持 Python 3.8+
- HTTPX 是 Requests 的后继者,旨在提供更强大、更灵活的 HTTP 客户端
- 支持 HTTP/1.1 和 HTTP/2
- 广泛兼容请求的 API
- 标准同步接口,但在需要时也支持异步
- HTTPX 支持 HTTP/1.1 和 HTTP/2,并且可以与异步编程模型(如 asyncio)一起使用
- 可直接向 WSGI 应用程序或 ASGI 应用程序发出请求。
- 处处严格超时
- 完全类型注释
- 100% 测试覆盖率
- 加上请求的所有标准功能…
- 保持长效和连接池
- 会话与 Cookie 持久性
- 浏览器式 SSL 验证
- 基本/数字验证
- 优雅的密钥/值 Cookie
- 自动解压缩
- 自动内容解码
- Unicode 响应体
- 多部分文件上传
- HTTP(S) 代理支持
- 连接超时
- 流式下载
- 支持
.netrc
- 分块请求
安装
pip install httpx
pip install 'httpx[socks]'
pip install 'httpx[http2]'
pip install 'httpx[brotli,zstd]'
使用
同步请求
import httpx
# 发送 GET 请求
response = httpx.get('https://www.xiexianbin.cn')
print(response)
# <Response [200 OK]>
print(response.status_code)
# 200
print(response.headers['content-type'])
# text/html
print(response.text)
# 发送 POST 请求
data = {'key': 'value'}
response = httpx.post('https://www.xiexianbin.cn', data=data)
print(response.text)
# 发送 PUT 请求
response = httpx.put('https://www.xiexianbin.cn', data=data)
print(response.text)
# 发送 DELETE 请求
命令行
pip install 'httpx[cli]'
$ httpx http://httpbin.org/json
HTTP/1.1 200 OK
Date: Sun, 10 Nov 2024 08:27:48 GMT
Content-Type: application/json
Content-Length: 429
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"slideshow": {
"author": "Yours Truly",
"date": "date of publication",
"slides": [
{
"title": "Wake up to WonderWidgets!",
"type": "all"
},
{
"items": [
"Why <em>WonderWidgets</em> are great",
"Who <em>buys</em> WonderWidgets"
],
"title": "Overview",
"type": "all"
}
],
"title": "Sample Slide Show"
}
}