NO_PROXY 不会抹掉显式的 Requests 路由
区分抑制来自环境的代理发现与移除在 Requests 映射中特意提供的代理。
当应用把自己的代理策略交给 Requests 时,请对同一策略给出直接的例外。对于已存在的 Session 和范围很窄的调用:
direct_routes = {'http': '', 'https': ''}
response = session.get(url, proxies=direct_routes, timeout=15)
显式的空值会为相关 scheme 选择直连路由。还要检查实际调用和 Session 的默认值,看是否有更具体的 host 键;仅在 scheme 层做覆盖不会移除单独的、针对某个 host 的路由。
为什么把主机加入 NO_PROXY 之后,显式代理仍然留在原地?Requests 2.34.2 的解析器会复制传入的映射,并考虑环境是否应当补齐缺失的条目。绕过匹配可以抑制这次发现,却不会删除应用已经提供的路由。
在另一层添加例外之前,先检查这次操作使用的映射。在直连路由上保持 TLS 校验开启。如果重定向再次改变路由,请沿途检查 None 与空代理值的区别。那里的证书错误是关于该路径上目标信任的证据,这与是否选中了代理是两回事。