Zeep ला WSDL वाचण्यापूर्वी प्रॉक्सी हवी आहे
दूरच्या WSDL वरून Client तयार करण्यापूर्वी Requests सत्र आणि Zeep Transport तयार करा.
दूरच्या WSDL वरून Zeep Client तयार केल्यास तो दस्तऐवज आणि त्याचे import लगेच येऊ शकतात. Client ने आधीच सेवा वर्णन लोड करण्याचा प्रयत्न केल्यानंतर प्रॉक्सी सेट करण्याऐवजी आधी Transport कॉन्फिगर करा.
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 हा सेवा वर्णनाचा प्रत्यक्ष URL आहे. जर ती सेवा आणि तिचे import सार्वजनिकरित्या उपलब्ध असतील आणि सार्वजनिक प्रॉक्सीला परवानगी असेल, तर HTTP प्रॉक्सी सूची सत्राच्या प्रॉक्सी URL साठी उमेदवार देते. कॉन्फिगर केलेले सत्र पुढील SOAP क्रियांसाठी सुरू ठेवा आणि ते काम संपल्यावर बंद करा.
Transport.timeout WSDL आणि XSD लोडिंग नियंत्रित करतो. operation_timeout सेवा क्रियांसाठी केलेल्या HTTP विनंत्या नियंत्रित करतो. म्हणून Client तयार करताना होणारा मेटाडेटा टाइमआउट नंतरच्या मेथड कॉल टाइमआउटपेक्षा वेगळा टप्पा आहे.
या उदाहरणात Requests चे पर्यावरण एकत्रीकरण सक्रिय राहते. जर पर्यावरणातील प्रॉक्सी मूल्ये स्पष्टपणे आवश्यक मार्गाशी विसंगत असतील, तर session.trust_env=False वापरा आणि आवश्यक CA बंडल व प्रमाणीकरण सेटिंग्ज स्पष्टपणे द्या.
इनिशियलायझेशन अजूनही अयशस्वी झाल्यास import केलेल्या दस्तऐवजाचा URL तपासा. वरच्या पातळीचा WSDL यशस्वीरित्या लोड होऊ शकतो, पण import केलेली schema दुसरे hostname किंवा गंतव्य protocol वापरत असू शकते.