Requests 中的代理 Digest 认证
区分 Requests 的目标站 Digest 认证与代理 Digest 及其 HTTPS 隧道要求。
Requests 的 HTTPDigestAuth 处理目标站认证。代理则会返回 407 状态并附带 Proxy-Authenticate,需要单独的认证处理。
requests-toolbelt 提供 HTTPProxyDigestAuth 来处理代理挑战并准备代理授权。请核对与所用 Requests 及传输层具体版本的兼容性。
HTTPS CONNECT 需要单独支持
代理可以在建立 CONNECT 隧道时发起挑战,此时常规目标响应尚未到达响应钩子。因此,能处理可见的 407 并不等于支持所有 CONNECT 认证路径。
对于 HTTPS 目标,请使用明确支持隧道建立阶段所需代理认证的客户端或仍在维护的集成。绑定到旧版 Requests 或 urllib3 内部实现的 monkey patch 在复用前需要仍在维护的兼容性说明。
将代理认证与目标站认证的要求分别记录在不同字段中,并注明失败的阶段。这样可以看出哪个挑战已处理、哪个仍需支持。