Zeep WSDL পড়ার আগেই প্রক্সি চায়
দূরের WSDL থেকে Client তৈরি করার আগে Requests সেশন ও Zeep Transport তৈরি করুন।
দূরের WSDL থেকে Zeep Client তৈরি করলে সেই নথি এবং এর import সঙ্গে সঙ্গে আনা হতে পারে। Client ইতিমধ্যে service description লোড করার চেষ্টা করার পরে প্রক্সি সেট করার বদলে প্রথমে 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 হলো প্রকৃত service-description URL। যদি সেই service ও এর import সর্বজনীনভাবে পৌঁছানো যায় এবং সর্বজনীন প্রক্সি অনুমোদিত হয়, তবে HTTP proxy list সেশনের proxy URL-এর জন্য প্রার্থী যোগায়। পরবর্তী SOAP operation-এর জন্য কনফিগার করা সেশন সচল রাখুন, তারপর কাজ শেষ হলে বন্ধ করুন।
Transport.timeout WSDL ও XSD লোড নিয়ন্ত্রণ করে। operation_timeout service operation-এর HTTP অনুরোধ নিয়ন্ত্রণ করে। তাই Client তৈরির সময় metadata timeout পরের method call timeout থেকে ভিন্ন ধাপ।
এই উদাহরণে Requests-এর environment integration সক্রিয় থাকে। যদি environment proxy মান স্পষ্টভাবে প্রয়োজনীয় route-এর সঙ্গে সংঘর্ষ করে, session.trust_env=False ব্যবহার করুন এবং প্রয়োজনীয় CA bundle ও authentication সেটিং স্পষ্টভাবে দিন।
যদি শুরু করা এখনও ব্যর্থ হয়, তবে import করা নথির URL পরীক্ষা করুন। একটি শীর্ষ-স্তরের WSDL সফলভাবে লোড হতে পারে, অথচ import করা schema অন্য hostname বা গন্তব্য protocol ব্যবহার করে।