Python Requests ၏ Session ပရောက်စီနှင့် ပတ်ဝန်းကျင်ဦးစားပေးမှု
session.proxies၊ ပတ်ဝန်းကျင်ကိန်းရှင်၊ တောင်းဆိုမှုတစ်ခုချင်းစီရွေးချယ်မှုနှင့် trust_env ပေါင်းလုပ်သည့်အခါ Python Requests လမ်းကြောင်းကို ခန့်မှန်းနိုင်အောင်လုပ်ပါ။
session.proxies သည် endpoint တစ်ခုကိုညွှန်သော်လည်း script က shell ပရောက်စီကိုသုံးလျှင် dictionary တူကို ပြန်သတ်မှတ်ရုံဖြင့် ပဋိပက္ခမပြေလည်ပါ။ Requests သည် ပတ်ဝန်းကျင်ပရောက်စီဆက်တင်ကို Session မူလတန်ဖိုးထက် ဦးစားပေးပေါင်းစည်းနိုင်သည်။ Session က ပတ်ဝန်းကျင်မှ ဆက်တင်ရှာဖွေမှု ဆက်လုပ်သင့်သလား ရွေးပါ။
ပတ်ဝန်းကျင်ရှာဖွေမှုကိုထားပြီး လမ်းကြောင်းကို တောင်းဆိုမှုတွင်ပေးပါ
ဤ Session/ပတ်ဝန်းကျင်ပဋိပက္ခကိုရှောင်ရန် Requests အကြံပြုသကဲ့သို့ ခေါ်ဆိုမှုတစ်ခုချင်းစီသို့ တိကျသောတန်ဖိုးပေးပါ။
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
with requests.Session() as session:
response = session.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
စက်တွင်း listener ကို မိမိဟာနှင့် အစားထိုးပါ။ အများသုံး HTTP endpoint များနှိုင်းလျှင် Session မူဝါဒကို မပြောင်းဘဲ HTTP proxy စာရင်းမှ ရွေးပါ။ ဤနည်းက ပေးထားသည့် mapping အရာများကို ထိန်းသည်။ အက်ပ်သုံးသည့် အခြား scheme သို့မဟုတ် host များအတွက်လည်း ရည်ရွယ်ရွေးပါ။ ဝန်ဆောင်မှု၊ IDE၊ container သို့မဟုတ် CI runner သည် terminal နှင့်မတူသည့် ပတ်ဝန်းကျင်ကို အမွေဆက်ခံနိုင်သည်။
Session က မိမိဆက်တင်ကို ထိန်းစေပါ
အက်ပ်သည် ပတ်ဝန်းကျင်မှ ပရောက်စီမရှာသင့်လျှင် ပထမတောင်းဆိုမှုမတိုင်မီ မူဝါဒသတ်မှတ်ပါ။
with requests.Session() as session:
session.trust_env = False
session.proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = session.get(
"https://example.com/",
timeout=(5, 15),
)
response.raise_for_status()
trust_env=False က ပတ်ဝန်းကျင်ဆိုင်ရာ certificate ဆက်တင်နှင့် အလိုအလျောက် netrc အထောက်အထားစစ်ခြင်းကိုလည်း သက်ရောက်သည်။ ရွေးချယ်မီ ဤမှီခိုမှုများကို စဉ်းစားပါ။ ခွင့်ပြုထားသည့် ပုဂ္ဂလိက CA bundle အတွက် တိကျသော path ပေးနိုင်သည်။
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
တကယ်ခွင့်ပြုထားသော bundle ကိုသုံးပြီး စစ်ဆေးမှုကို ဖွင့်ထားပါ။ အခြားအလုပ်များသုံးနေသော Session တစ်ခုကို ပြင်မည့်အစား လမ်းကြောင်းမူဝါဒတိုင်းအတွက် သီးခြား Session ထားပါ။
နည်းနှစ်ခုစလုံးက အက်ပ်လမ်းကြောင်းကို မရှင်းပြလျှင် ခွဲထားသည့် Session နှင့် အက်ပ်ကို runtime တူ၊ အန္တရာယ်မရှိသည့် ပစ်မှတ်တူဖြင့် နှိုင်းပါ။ ရှိသောပရောက်စီကိန်းရှင်၊ trust_env တန်ဖိုးနှင့် ခေါ်ဆိုမှုက proxies ပေးသလား မှတ်ပါ။ ဝင်ရောက်မှုအထောက်အထားပါ URL ကို မျှဝေ log မှချန်ပါ။ သီးခြားအောင်မြင်မှုက နောက်စစ်ဆေးမှုကို Session တည်ဆောက်ခြင်း၊ adapter၊ ပြင်ဆင်ထားသည့် request စီးဆင်းမှု သို့မဟုတ် ကိုယ်ပိုင် transport ဆီညွှန်သည်။ curl ဖြင့်ပတ်ဝန်းကျင်စမ်းခြင်းသည် Requests ၏ကိုယ်ပိုင်ပေါင်းစည်းပုံကို မဆုံးဖြတ်နိုင်ပါ။