Construirea unui Client Zeep dintr-un WSDL la distanță poate prelua imediat acel document și importurile sale. Configurați mai întâi Transportul, în loc să setați un proxy după ce Client a încercat deja să încarce descrierea serviciului.

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 este URL-ul real al descrierii serviciului. Dacă acel serviciu și importurile sale sunt accesibile public și proxy-urile publice sunt permise, lista de proxy-uri HTTP oferă candidați pentru URL-urile proxy ale sesiunii. Păstrați sesiunea configurată activă pentru operațiile SOAP ulterioare, apoi închideți-o când acea lucrare se termină.

Transport.timeout controlează încărcarea WSDL și XSD. operation_timeout controlează cererile HTTP făcute pentru operațiile serviciului. Un timeout de metadate în timpul construirii Client este, prin urmare, o etapă diferită de un apel de metodă care expiră mai târziu.

În acest exemplu, integrarea cu mediul a Requests rămâne activă. Dacă valorile proxy din mediu intră în conflict cu o rută cerută explicit, folosiți session.trust_env=False și furnizați explicit pachetul CA și setările de autentificare necesare.

Verificați URL-ul documentului importat când inițializarea încă eșuează. Un WSDL de nivel superior se poate încărca cu succes în timp ce o schemă importată folosește un alt nume de gazdă sau protocol de destinație.

Articole similare