Zeep tarvitsee välityspalvelimen ennen WSDL:n lukemista
Luo Requests-istunto ja Zeep Transport ennen kuin rakennat Clientin etä-WSDL:stä.
Zeep Clientin rakentaminen etä-WSDL:stä voi noutaa kyseisen asiakirjan ja sen importit heti. Määritä Transport ensin sen sijaan, että asettaisit välityspalvelimen vasta kun Client on jo yrittänyt ladata palvelukuvauksen.
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 on palvelukuvauksen todellinen URL. Jos palvelu ja sen importit ovat julkisesti tavoitettavissa ja julkiset välityspalvelimet ovat sallittuja, HTTP-välityspalvelinluettelo tarjoaa ehdokkaita istunnon välityspalvelin-URL:ille. Pidä määritetty istunto elossa seuraavia SOAP-toimintoja varten ja sulje se, kun työ päättyy.
Transport.timeout ohjaa WSDL:n ja XSD:n lataamista. operation_timeout ohjaa palvelutoimintojen HTTP-pyyntöjä. Siksi metatietojen aikakatkaisu Clientin rakentamisen aikana on eri vaihe kuin myöhemmin aikakatkaistava metodikutsu.
Tässä esimerkissä Requestsin ympäristöintegrointi pysyy aktiivisena. Jos ympäristön välityspalvelinarvot ovat ristiriidassa nimenomaisesti vaaditun reitin kanssa, käytä session.trust_env=False ja toimita tarvittava CA-nippu ja todennusasetukset nimenomaisesti.
Tarkista tuodun asiakirjan URL, jos alustus epäonnistuu edelleen. Ylätason WSDL voi latautua onnistuneesti, vaikka tuotu skeema käyttää toista isäntänimeä tai kohdeprotokollaa.