Niquests 是一个简单而优雅的 HTTP 客户端, 简单说它是 Requests 的直接替代品。 因为多年来Requests 功能一直处于停滞不前的状态,由于不前进的状态并且没有发展,这阻止了数百万开发人员使用更高级的功能,所以就有了Niquests, Niquests 是唯一能够自动提供 HTTP/1.1、HTTP/2 和 HTTP/3 的 HTTP 客户端, 该项目深入研究了协议(早期响应、尾部标头等)和所有相关的网络基本要素(如 DNS-over-HTTPS、高级性能计量等,而且Niquests是最安全,最快,最简单和最先进的Python HTTP 客户端。
Niquests 在 PyPI 上可用, Niquests 官方支持 Python 或 PyPy 3.7+。
$ python -m pip install niquests>>> import niquests>>> s = niquests.Session(resolver="doh+google://", multiplexed=True)>>> r = s.get('https://one.one.one.one')>>> r<ResponsePromise HTTP/3>>>> r.status_code200>>> r.headers['content-type']'application/json; charset=utf8'>>> r.oheaders.content_type.charset'utf8'>>> r.encoding'utf-8'>>> r.text'{"authenticated": true, ...'>>> r.json(){'authenticated': True, ...}>>> r<Response HTTP/3 [200]>>>> r.ocsp_verifiedTrue>>> r.conn_info.established_latencydatetime.timedelta(microseconds=38)也可以使用async/await
import niquestsimport asyncioasync def main() -> None: async with niquests.AsyncSession(resolver="doh+google://") as s: r = await s.get('https://one.one.one.one', stream=True) print(r) # Output: <Response HTTP/3 [200]> payload = await r.json() print(payload) # Output: {'authenticated': True, ...}asyncio.run(main())Niquests 允许我们非常轻松地发送 HTTP 请求,无需手动向你的URL添加查询字符串,也不需要对你的数据进行形式编码 - 只需使用该方法即可!另外该项目不需要任何编译工具链,如果我们平台可以原生支持 HTTP/3 支持,则不会强制执行和安装 HTTP/3 支持。
最后再罗列下Niquests的全面的功能。
Niquests 已准备好满足构建可扩展、强大且可靠的 HTTP 应用程序的需求。
看完上面的内容感觉功能真是全,可以完美替换requests了,还不去赶快试试。
https://niquests.readthedocs.io/en/stable/
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等 推荐阅读
点击 阅读原文 了解更多