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 プロキシ URL に HTTP プロキシ一覧 の候補を使います。WSDL のインポートとスキーマも構築中に取得されることがあります。後から set_options を呼んでも後続の処理に影響するだけで、すでに失敗したコンストラクターは修復できません。
保守されているトランスポートは、マッピングから明示的な urllib ProxyHandler を構築します。空のマッピングは既定のプロキシ検出とは異なるため、小さな urllib プログラムで動くエクスポート済み環境が Suds を制御するとは限りません。
固定ルートにはマッピングを使います。宛先に依存するシステムポリシーには、それを意図的に保持するトランスポート統合を選びます。すべてのハンドラーを空のリストに置き換えると、専用の認証動作が失われることがあります。
渡したカスタム opener は、意図したルートを自分で保持している必要があります。グローバル opener をインストールしても既存のプライベート opener は置き換わりません。この SOAP クライアントが実際に使うトランスポートを設定してください。