httpx 介绍
2022-07-26 09:39 更新
HTTPX是Python 3的全功能HTTP客户端,它提供同步和异步API,并支持HTTP / 1.1和HTTP / 2。
为了方便对方法的理解,本篇教程全文代码基本都是采用python shell 环境进行调试!
使用 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>...'
或者,使用命令行客户端。
# 命令行客户端是可选的依赖项。以下为MacOS下运行的命令
$ pip install 'httpx[cli]'
#以下是Windows下运行的命令
pip install httpx[cli]
现在允许我们直接从命令行使用HTTPX...
1
正在发送请求...
特点
HTTPX 建立在requests
的成熟可用性之上,并为您提供:
- 广泛兼容请求的 API。
- 标准同步接口,但在需要时提供异步支持。
- 支持 HTTP/1.1和 HTTP/2。
- 能够直接向 WSGI 应用程序或 ASGI 应用程序发出请求。
- 到处都是严格的超时。
- 完全带注释的类型。
- 100%的测试覆盖率。
加上requests
所有标准功能...
- 国际域名和网址
- Keep-Alive & Connection Pooling
- 具有 Cookie 持久性的会话
- 浏览器式 SSL 验证
- 基本/摘要式身份验证
- 优雅的键/值Cookie
- 自动解压
- 自动内容解码
- Unicode 响应的 Body
- 分段文件上传
- 代理支持
- 连接超时
- 流式传输下载
-
.NETrc
支持 - 分块请求
文档
有关所有基础知识的概述,请转到快速入门。
有关更高级的主题,请参阅高级用法部分、异步支持部分或 HTTP/2 部分。
开发人员界面提供了全面的 API 参考。
若要了解与 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
围绕较低层次的网络细节提供的大量设计灵感,都是一笔巨大的功劳。
安装
用pip安装:
$ pip install httpx
或者,要包含可选的 HTTP/2 支持,请使用:
$ pip install httpx[http2]
要包括可选的 brotli 解码器支持,请使用:
$ pip install httpx[brotli]
以上内容是否对您有帮助:
更多建议: