Pass the route into the suds-community client constructor when WSDL loading needs it:

from suds.client import Client

client = Client(
    'https://service.example/soap?wsdl',
    proxy={
        'http': 'http://proxy.example:8080',
        'https': 'http://proxy.example:8080',
    },
)

The mapping keys are destination schemes; both can name the same HTTP intermediary. For a public SOAP test that permits an unauthenticated public intermediary, use candidates from the HTTP proxy list for those HTTP proxy URLs. WSDL imports and schemas may also be fetched during construction. A later set_options can affect later work, not repair a constructor that already failed.

The maintained transport builds an explicit urllib ProxyHandler from its mapping. An empty mapping is different from default proxy discovery, so an exported environment that works in a small urllib program need not control Suds.

Use the mapping for a fixed route. For destination-dependent system policy, choose a transport integration that deliberately preserves it. Replacing every handler with an empty list can lose specialized authentication behavior.

A supplied custom opener must carry the intended route itself. Installing a global opener does not replace an existing private one; configure the transport this SOAP client actually uses.

Related articles