Zeep ට WSDL කියවීමට පෙර proxy අවශ්යයි
දුරස්ථ WSDL එකකින් Client එකක් තැනීමට පෙර Requests සැසිය සහ Zeep Transport සාදන්න.
දුරස්ථ WSDL එකකින් Zeep Client එකක් තැනීමේදී එම ලේඛනය සහ එහි import ක්ෂණිකව ලබාගත හැකිය. Client දැනටමත් සේවා විස්තරය පූරණය කිරීමට උත්සාහ කළ පසු proxy සැකසීම වෙනුවට පළමුව 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 පොදුවේ ප්රවේශ විය හැකි නම් සහ පොදු proxy අවසර දී ඇත්නම්, HTTP proxy ලැයිස්තුව සැසියේ proxy URL සඳහා අපේක්ෂකයන් සපයයි. වින්යාස කළ සැසිය ඉදිරි SOAP මෙහෙයුම් සඳහා ජීවතුන් අතර තබා, එම කටයුත්ත අවසන් වූ විට එය වසන්න.
Transport.timeout WSDL සහ XSD පූරණය පාලනය කරයි. operation_timeout සේවා මෙහෙයුම් සඳහා කරන HTTP ඉල්ලීම් පාලනය කරයි. එබැවින් Client තැනීමේදී සිදුවන metadata කාල ඉකුත්වීම පසුව සිදුවන method ඇමතුම් කාල ඉකුත්වීමට වඩා වෙනස් අවස්ථාවකි.
මෙම උදාහරණයේදී Requests හි පරිසර ඒකාබද්ධතාවය සක්රීයව පවතී. පරිසර proxy අගයන් පැහැදිලිව අවශ්ය මාර්ගය සමඟ ගැටුනොත්, session.trust_env=False භාවිත කර අවශ්ය CA bundle සහ authentication සැකසුම් පැහැදිලිව සපයන්න.
ආරම්භ කිරීම තවමත් අසාර්ථක නම් import කළ ලේඛනයේ URL පරීක්ෂා කරන්න. ඉහළ මට්ටමේ WSDL සාර්ථකව පූරණය විය හැකි නමුත් import කළ schema වෙනත් hostname එකක් හෝ ගමනාන්ත protocol එකක් භාවිත කරයි.