Zeep treng proxyen før han les WSDL-en
Lag Requests-økta og Zeep Transport før du byggjer ein Client frå ein ekstern WSDL.
Å byggje ein Zeep Client frå ein ekstern WSDL kan hente dokumentet og importane med ein gong. Set opp Transport først, i staden for å setje ein proxy etter at Client allereie har prøvd å laste tenesteskildringa.
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 tenesteskildringa. Viss tenesta og importane hennar er offentleg tilgjengelege og offentlege proxyar er tillatne, gir HTTP-proxylista kandidatar for proxy-URL-ane til økta. Hald den oppsette økta levande for seinare SOAP-operasjonar, og lukk henne når det arbeidet er ferdig.
Transport.timeout styrer lasting av WSDL og XSD. operation_timeout styrer HTTP-førespurnader for tenesteoperasjonar. Eit metadatatidsavbrot under bygging av Client er difor eit anna trinn enn eit metodekall som går ut på tid seinare.
I dette dømet blir miljøintegreringa til Requests verande aktiv. Viss proxyverdiane frå miljøet kjem i konflikt med ei rute som er uttrykkeleg påkravd, bruk session.trust_env=False og oppgi naudsynt CA-bunt og autentiseringsinnstillingar uttrykkeleg.
Sjekk URL-en til det importerte dokumentet når initialiseringa framleis mislukkast. Ein WSDL på toppnivå kan lastast, medan eit importert skjema brukar eit anna vertsnamn eller ein annan målprotokoll.