A Zeepnek a proxy kell, mielőtt beolvassa a WSDL-t
Hozza létre a Requests munkamenetet és a Zeep Transportot, mielőtt Clientet épít egy távoli WSDL-ből.
A Zeep Client távoli WSDL-ből való felépítése azonnal letöltheti azt a dokumentumot és annak importjait. Előbb konfigurálja a Transportot, ahelyett hogy a proxyt azután állítaná be, hogy a Client már megpróbálta betölteni a szolgáltatásleírást.
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)
A wsdl_url a szolgáltatásleírás tényleges URL-je. Ha ez a szolgáltatás és importjai nyilvánosan elérhetők, és a nyilvános proxyk engedélyezettek, a HTTP proxy lista jelölteket ad a munkamenet proxy URL-jeihez. Tartsa életben a beállított munkamenetet a későbbi SOAP-műveletekhez, majd zárja be, amikor az a munka véget ér.
A Transport.timeout a WSDL és XSD betöltését vezérli. Az operation_timeout a szolgáltatásműveletek HTTP-kéréseit vezérli. Ezért a Client felépítése közbeni metaadat-időtúllépés más szakasz, mint egy később lejáró metódushívás.
Ebben a példában a Requests környezeti integrációja aktív marad. Ha a környezeti proxy értékek ütköznek egy kifejezetten szükséges útvonallal, használja a session.trust_env=False értéket, és kifejezetten adja meg a szükséges CA-csomagot és hitelesítési beállításokat.
Ellenőrizze az importált dokumentum URL-jét, ha az inicializálás továbbra is sikertelen. Egy legfelső szintű WSDL sikeresen betölthető, miközben egy importált séma más hosztnevet vagy célprotokollt használ.