Zeep ir vajadzīgs starpproksis pirms WSDL lasīšanas
Izveidojiet Requests sesiju un Zeep Transport pirms Client veidošanas no attālinātā WSDL.
Veidojot Zeep Client no attālinātā WSDL, šo dokumentu un tā importus var uzreiz ielādēt. Vispirms konfigurējiet Transport, nevis iestatiet starpproksi pēc tam, kad Client jau ir mēģinājis ielādēt pakalpojuma aprakstu.
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 ir faktiskais pakalpojuma apraksta URL. Ja šis pakalpojums un tā importi ir publiski pieejami un publiskie starpproksi ir atļauti, HTTP starpproksu saraksts nodrošina kandidātus sesijas starpproksu URL. Saglabājiet konfigurēto sesiju dzīvu turpmākajām SOAP operācijām un aizveriet to, kad šis darbs beidzas.
Transport.timeout kontrolē WSDL un XSD ielādi. operation_timeout kontrolē HTTP pieprasījumus pakalpojuma operācijām. Tāpēc metadatu taimauts Client veidošanas laikā ir cits posms nekā vēlāk beidzošs metodes izsaukums.
Šajā piemērā Requests integrācija ar vidi paliek aktīva. Ja vides starpproksa vērtības konfliktē ar skaidri nepieciešamu maršrutu, izmantojiet session.trust_env=False un skaidri norādiet nepieciešamo CA pakotni un autentifikācijas iestatījumus.
Pārbaudiet importētā dokumenta URL, ja inicializācija joprojām neizdodas. Augstākā līmeņa WSDL var ielādēties veiksmīgi, kamēr importētā shēma izmanto citu resursdatora nosaukumu vai galamērķa protokolu.