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 बंडल तथा प्रमाणीकरण सेटिंग्स स्पष्ट रूप से दें।
यदि इनिशियलाइज़ेशन अभी भी विफल होता है तो आयातित दस्तावेज़ का URL जाँचें। शीर्ष-स्तरीय WSDL सफलतापूर्वक लोड हो सकता है जबकि आयातित schema किसी अन्य hostname या गंतव्य protocol का उपयोग करता हो।