Å bygge en Zeep Client fra en ekstern WSDL kan hente dokumentet og importene umiddelbart. Konfigurer Transport først i stedet for å sette en proxy etter at Client allerede har forsøkt å laste tjenestebeskrivelsen.

from requests import Session
from zeep import Client
from zeep.transports import Transport

session = Session()
session.proxies.update({
    "http": "http://proxy.example.net:8080",
    "https": "http://proxy.example.net:8080",
})

transport = Transport(
    session=session,
    timeout=10,
    operation_timeout=30,
)
client = Client(wsdl_url, transport=transport)

wsdl_url er den faktiske URL-en til tjenestebeskrivelsen. Hvis tjenesten og importene er offentlig tilgjengelige og offentlige proxyer er tillatt, gir HTTP-proxylisten kandidater for øktens proxy-URL-er. Hold den konfigurerte økten i live for senere SOAP-operasjoner, og lukk den når arbeidet er ferdig.

Transport.timeout styrer lasting av WSDL og XSD. operation_timeout styrer HTTP-forespørsler for tjenesteoperasjoner. En metadatatidsavbrudd under bygging av Client er derfor et annet trinn enn et metodekall som timer ut senere.

I dette eksempelet forblir miljøintegrasjonen til Requests aktiv. Hvis miljøets proxyverdier er i konflikt med en eksplisitt påkrevd rute, bruk session.trust_env=False og oppgi nødvendig CA-bunt og autentiseringsinnstillinger eksplisitt.

Sjekk URL-en til det importerte dokumentet når initialiseringen fortsatt mislykkes. En WSDL på toppnivå kan lastes, mens et importert skjema bruker et annet vertsnavn eller en annen målprotokoll.

Relaterte artikler