Zeep ka nevojë për proxy para se të lexojë WSDL
Krijo sesionin Requests dhe Transportin Zeep përpara se të ndërtosh një Client nga një WSDL në distancë.
Ndërtimi i një Client Zeep nga një WSDL në distancë mund të marrë menjëherë atë dokument dhe importet e tij. Konfiguroni Transportin së pari, në vend që të vendosni një proxy pasi Client ka provuar tashmë të ngarkojë përshkrimin e shërbimit.
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 është URL-ja aktuale e përshkrimit të shërbimit. Nëse ai shërbim dhe importet e tij janë të aksesueshme publikisht dhe proxy-t publike lejohen, lista e proxy-ve HTTP ofron kandidatë për URL-të e proxy të sesionit. Mbajeni sesionin e konfiguruar aktiv për operacionet SOAP në vijim dhe mbylleni kur ai punë përfundon.
Transport.timeout kontrollon ngarkimin e WSDL dhe XSD. operation_timeout kontrollon kërkesat HTTP për operacionet e shërbimit. Prandaj një skadim i metadatës gjatë ndërtimit të Client është një fazë tjetër nga një skadim i thirrjes së metodës më vonë.
Në këtë shembull, integrimi me mjedisin i Requests mbetet aktiv. Nëse vlerat e proxy-t të mjedisit bien ndesh me një rrugë të kërkuar në mënyrë eksplicite, përdorni session.trust_env=False dhe jepni në mënyrë eksplicite paketën CA dhe cilësimet e autentikimit të nevojshme.
Kontrolloni URL-në e dokumentit të importuar kur inicializimi vazhdon të dështojë. Një WSDL i nivelit të lartë mund të ngarkohet me sukses ndërsa një skemë e importuar përdor një emër tjetër hosti ose protokoll destinacioni.