在加载 WSDL 之前配置 Suds 代理
在创建 SOAP 客户端时提供 Suds 的代理映射,并考虑传输层显式的 urllib 处理器。
当 WSDL 加载需要时,把路由传入 suds-community 客户端构造函数:
from suds.client import Client
client = Client(
'https://service.example/soap?wsdl',
proxy={
'http': 'http://proxy.example:8080',
'https': 'http://proxy.example:8080',
},
)映射的键是目标协议方案;两者可以指向同一个 HTTP 中间人。对于允许未认证公共中间人的公开 SOAP 测试,请从 HTTP 代理列表 中为这些 HTTP 代理地址挑选候选。WSDL 导入和 schema 也可能在构造期间被获取。稍后的 set_options 只能影响后续工作,无法修复已经失败的构造函数。
受维护的传输层会根据其映射构建显式的 urllib ProxyHandler。空映射与默认的代理发现不同,因此在小型 urllib 程序中可用的导出环境并不一定能控制 Suds。
固定路由请使用映射。对于依赖目标的系统策略,应选择有意保留它的传输集成。把所有处理器替换为空列表可能丢失专门的身份验证行为。
提供的自定义 opener 必须自己携带预期的路由。安装全局 opener 不会替换已有的私有 opener;请配置这个 SOAP 客户端实际使用的传输层。