Zeep hat de proxy nedich foardat it de WSDL lêst
Meitsje de Requests-sesje en Zeep Transport oan foardat jo in Client fan in remote WSDL bouwe.
It bouwen fan in Zeep Client fan in remote WSDL kin dat dokumint en syn imports daliks ophelje. Konfigurearje earst it Transport, ynstee fan in proxy yn te stellen neidat Client al besocht hat de tsjinstbeskriuwing te laden.
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 is de eigentlike URL fan de tsjinstbeskriuwing. As dy tsjinst en syn imports iepenbier tagonklik binne en iepenbiere proxys tastean binne, leveret de HTTP-proxylist kandidaten foar de proxy-URL's fan de sesje. Hâld de konfigurearre sesje libben foar folgjende SOAP-operaasjes en slút har as dat wurk dien is.
Transport.timeout regelet it laden fan WSDL en XSD. operation_timeout regelet HTTP-oanfragen foar tsjinstoperaasjes. In metadata-time-out by it bouwen fan Client is dêrom in oare faze as in metoade-oproep dy't letter ferrint.
Yn dit foarbyld bliuwt de omjouwingsyntegraasje fan Requests aktyf. As omjouwingsproxywearden yn konflikt komme mei in eksplisyt fereaske rûte, brûk session.trust_env=False en leverje de nedige CA-bondel en autentikaasje-ynstellingen eksplisyt.
Kontrolearje de URL fan it ymportearre dokumint as de initialisaasje noch altyd mislearret. In WSDL op heech nivo kin mei sukses laden wylst in ymportearre skema in oare hostnamme of bestimmingsprotokol brûkt.