Httpx-Python的下一代HTTP客户端。🦋

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

  • 国际域名和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密码。在英国布赖顿设计和建造