HTTPX是Python3的一个功能齐全的HTTP客户端,它提供同步和异步API,并同时支持HTTP/1.1和HTTP/2
注意事项:HTTPX应该在测试版中考虑。我们相信我们现在已经使公共API达到了一个稳定点,但是强烈建议将您的依赖项绑定到0.18.*
发布,这样您就可以正确地查看API changes between package updates1.0版本预计将在2021年的某个时候发布
我们开始吧
>>> 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>...'
或者,使用异步API
使用IPython或Python 3.8+和python -m asyncio
以交互方式尝试此代码
>>> import httpx
>>> async with httpx.AsyncClient() as client:
... r = await client.get('https://www.example.org/')
...
>>> r
<Response [200 OK]>
功能
HTTPX构建在requests
,并为您提供:
- 宽泛的,宽泛的requests-compatible API
- 标准同步接口,但使用async support if you need it
- HTTP/1.1and HTTP/2 support
- 能够直接向WSGI applications或ASGI applications
- 到处都有严格的超时
- 带全类型注释的
- 100%测试覆盖率
加上的所有标准功能requests
- 国际域名和URL
- 保活和连接池
- 具有Cookie持久性的会话
- 浏览器样式的SSL验证
- 基本/摘要身份验证
- 精美的密钥/价值Cookie
- 自动解压
- 自动内容解码
- Unicode响应正文
- 多部分文件上载
- HTTP(S)代理支持
- 连接超时
- 流式下载
- netrc支持
- 分块请求
安装
使用pip安装:
$ pip install httpx
或者,要包括可选的HTTP/2支持,请使用:
$ pip install httpx[http2]
HTTPX需要Python 3.6+
文档
有关项目文档,请访问https://www.python-httpx.org/
要浏览所有基础知识,请访问QuickStart
有关更高级的主题,请参阅Advanced Usage部分中,async support节,或HTTP/2部分
这个Developer Interface提供全面的API参考
要了解有关与HTTPX集成的工具的信息,请参阅Third Party Packages
贡献力量
如果您想使用HTTPX做出贡献,请查看Contributing Guide学习如何开始
依赖项
HTTPX项目依赖于这些优秀的库:
httpcore
-的底层传输实现httpx
h11
-HTTP/1.1支持h2
-HTTP/2支持。(可选)
certifi
-SSL证书rfc3986
-URL解析和规范化idna
-支持国际化域名
sniffio
-异步库自动检测async_generator
-后端支持contextlib.asynccontextmanager
(仅Python 3.6需要)brotlicffi
-解码“brotli”压缩响应。(可选)
巨额信贷应归因于requests
对于此工作中的大部分工作所遵循的API布局,以及urllib3
有关较低级别的网络细节的大量设计灵感,请参阅
-⭐️-
HTTPX是BSD licensed密码。在英国布赖顿设计和建造