为选定主机配置代理传输,为客户端的其余请求显式配置直连传输:

import httpx

direct = httpx.HTTPTransport(trust_env=False)
proxied = httpx.HTTPTransport(
    proxy="http://203.0.113.10:8080",
    trust_env=False,
)

with httpx.Client(
    transport=direct,
    mounts={"all://example.com": proxied},
    trust_env=False,
    timeout=15,
) as client:
    response = client.get("https://example.com/")
    print(response.status_code)

    other = client.get("https://example.org/")
    print(other.status_code)

将文档代理地址替换为服务商或HTTP 代理列表中需要使用的 HTTP 端点。这里 example.com 使用挂载规则,example.org 使用默认直连。两个调用都重要:只有代理主机成功,并不能验证回退路由。

匹配细节效果
all://example.com跨目标协议方案匹配这个精确主机。
子域名单独选择;若也应匹配,应有意使用受支持的通配符。
路径挂载规则选择协议方案、主机和可选端口模式,而不是 URL 路径。
重定向到另一个主机启用跟随重定向时,会重新匹配新 URL,可能使用直连回退。

示例在客户端和两个传输上禁用了环境读取。改用时,其他宽泛代理规则或匹配的挂载规则可能改变结果。如果部署依赖环境提供的 CA 配置,应显式提供该信任配置,或保留适当的环境读取策略,避免无声丢失。

无需更改整机代理。路由检查中应同时包含目标代理主机和特意选择的回退主机。

相关文章