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 クライアントが実際に使うトランスポートを設定してください。

関連記事