You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.8标准库能否实现带verify=True、stream=True的requests.get功能

问题结论

可以通过Python 3.8标准库实现verify=True、stream=True对应的请求功能,无需引入requests库的额外内存开销。

功能对应实现说明
  • 等效verify=True的SSL证书校验:Python 3.8中urllib请求默认开启SSL证书校验,也可通过ssl模块显式配置校验规则,和requests的verify参数功能完全一致。
  • 等效stream=True的流式读取:urllib.request.urlopen返回的HTTPResponse对象本身支持按块迭代读取,不会一次性加载全量响应内容,和requests的stream参数效果一致。
完整示例代码
from urllib.request import urlopen, Request
import ssl

# 显式创建SSL上下文,默认开启证书校验,等价于 verify=True
# 如需自定义CA证书,可调用 ssl_ctx.load_verify_locations(cafile="自定义CA路径")
ssl_ctx = ssl.create_default_context()

# 构造请求(如需自定义请求头可使用Request对象)
req = Request(
    "https://example.com",
    headers={"User-Agent": "your-custom-ua/1.0"}
)

with urlopen(req, context=ssl_ctx, timeout=10) as resp:
    # 按1KB块流式读取响应,等价于 stream=True 下的 iter_content 用法
    for chunk in iter(lambda: resp.read(1024), b""):
        # 此处处理每一块响应数据,例如写入本地文件
        pass
补充说明

如果你的场景需要处理POST请求、表单提交等基础逻辑,也可以通过urllib.parse.urlencode构造请求体,传入Request对象的data参数实现,全部功能均可通过标准库完成,无额外依赖。

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 05:45:03