Zeep သည် WSDL မဖတ်မီ proxy လိုအပ်သည်
အဝေးရောက် WSDL မှ Client မတည်ဆောက်မီ Requests session နှင့် 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 များကို အများပြည်သူ ရောက်ရှိနိုင်ပြီး public proxy ခွင့်ပြုထားလျှင် HTTP proxy စာရင်း သည် session ၏ proxy URL များအတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။ ပြင်ဆင်ထားသော session ကို နောက်ထပ် 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 ကို အသုံးပြုနိုင်သည်။