当前位置:首页>python>Niquests: 最简单和先进的Python HTTP 客户端,完美替换Requests

Niquests: 最简单和先进的Python HTTP 客户端,完美替换Requests

  • 2026-09-24 20:46:03
Niquests: 最简单和先进的Python HTTP 客户端,完美替换Requests
关注+星标,每天学习Python新技能

来源:网络

什么是Niquests

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 应用程序的需求。

  • • 基于 HTTPS 的 DNS、基于 QUIC 的 DNS、基于 TLS 的 DNS 和基于 UDP 的 DNS
  • • 自动内容解压缩和解码
  • • OS truststore 默认,不再有 certifi!
  • • OCSP 证书吊销验证
  • • 高级连接时序检查
  • • 内存证书(CA 和 mTLS)
  • • 浏览器风格的 TLS/SSL 验证
  • • 具有 Cookie 持久性的会话
  • • Keep-Alive & 连接池
  • • 国际域和 URL
  • • 自动遵守.netrc
  • • 基本和摘要认证
  • • 熟悉的 Cookiedict
  • • 网络设置微调
  • • 具有先验知识的 HTTP/2
  • • 面向对象的标头
  • • 多部分文件上传
  • • 后量子安全性
  • • 分块 HTTP 请求
  • • 完全类型注释
  • • SOCKS 代理支持
  • • 连接超时
  • • 流式下载
  • • 默认为 HTTP/2
  • • 基于 QUIC 的 HTTP/3
  • • 早期响应
  • • 快乐的眼球
  • • 复 用!
  • • 线程安全!
  • • WebSocket的!
  • • Trailers
  • • DNSSEC!
  • • 异步!
  • • SSE!

看完上面的内容感觉功能真是全,可以完美替换requests了,还不去赶快试试。

https://niquests.readthedocs.io/en/stable/

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

推荐阅读

试试这个开源项目,让你纯 Python 写 Web 界面!

别再用 sort() 了!Python 这个模块让你的插入效率提升 10 倍

深度解密 Python 列表的实现原理

使用 FastAPI 整合 gRPC 构建 Python 微服务

点击 阅读原文 了解更多

最新文章

随机文章