Wanneer jy 'n Zeep Client van 'n afgeleë WSDL bou, kan dit dadelik daardie dokument en sy invoere laai. Stel die transport eerste op, eerder as om 'n proxy te stel nadat Client al probeer het om die diensbeskrywing te laai.

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 die werklike URL van die diensbeskrywing. As daardie diens en sy invoere publiek bereikbaar is en publieke proxies toegelaat word, verskaf die HTTP-proxylys kandidate vir die sessie se proxy-URL's. Hou die opgestelde sessie lewendig vir latere SOAP-bewerkings en sluit dit wanneer daardie werk afgehandel is.

Transport.timeout beheer die laai van WSDL en XSD. operation_timeout beheer HTTP-versoeke vir diensbewerkings. 'n Metadata-tydsverloop tydens die bou van Client is dus 'n ander stadium as 'n metode-oproep wat later tydsverloop.

Requests se omgewingsintegrasie bly in hierdie voorbeeld aktief. As omgewingsproxy-waardes bots met 'n eksplisiet vereiste roete, gebruik session.trust_env=False en verskaf enige nodige CA-bundel en verifikasie-instellings eksplisiet.

Kontroleer die URL van die ingevoerde dokument wanneer die initialisering steeds misluk. 'n Topvlak-WSDL kan suksesvol laai terwyl 'n ingevoerde skema 'n ander gasheernaam of bestemmingsprotokol gebruik.

Verwante artikels