Python urllib: HTTP တောင်းဆိုချက်များအတွက် Basic ပရောက်စီ အတည်ပြုခြင်း
HTTP ပရောက်စီ၏ Basic စိန်ခေါ်မှုအတွက် ရှင်းလင်းသော urllib opener တည်ဆောက်ပြီး ဤသာမန် HTTP ဖလှယ်မှုကို HTTPS CONNECT အတည်ပြုခြင်းနှင့် ခွဲခြားပါ။
HTTP ပရောက်စီမှ လာသော Basic စိန်ခေါ်မှုအတွက် ProxyBasicAuthHandler ကို အသုံးပြုပါ။ ဤသာမန် HTTP ဥပမာသည် လမ်းကြောင်းနှင့် အကောင့်ကို opener တစ်ခုတည်းတွင် ထားရှိသည်-
import os
from urllib.request import (
ProxyHandler, ProxyBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener,
)
proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
None, proxy_url,
os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
ProxyHandler({'http': proxy_url}),
ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
print(response.status)စစ်မှန်သော အဆုံးမှတ်နှင့် လုပ်ငန်းရှင်ပေးသော အကောင့်ကို အသုံးပြုပါ။ ဤဟန်းဒလာ သည် ပရောက်စီ၏ စိန်ခေါ်မှုအတွက် စကားဝှက် မန်နေဂျာကို အသုံးပြုသည်။ ရည်ရွယ်ထားသော ပရောက်စီ URI နှင့် realm ကို ကိုက်ညီအောင် လုပ်ပါ။ ဆိုက်ကွင်းရှိ Basic အတည်ပြုခြင်း သည် အခြားဟန်းဒလာကို အသုံးပြုသည်။
opener ကို တိုက်ရိုက် ခေါ်ခြင်းသည် ဤဆက်တင်ကို ဒေသအတွင်း ထားရှိသည်။ တောင်းဆိုချက် URL သည် ကြားခံမဟုတ်ဘဲ ဝက်ဘ်ဆိုက် အဖြစ် ကျန်ရှိသည်။ ဤပွင့်လင်းသော HTTP လမ်းကြောင်းသည် Basic ဖလှယ်မှုကို ကုဒ်မလုပ်ပါ။
ဤဥပမာမှ HTTPS လိုဏ်ခေါင်း ပံ့ပိုးမှုဟု မကောက်ချက်ချပါနှင့်။ CONNECT အတွင်း 407 သည် ဆက်တင်ချိန်တွင်၊ ပုံမှန် ဆိုက်ကွင်း တုံ့ပြန်မှု မတိုင်မီ ဖြစ်ပေါ်သည်။ ရွေးချယ်ထားသော ပေါင်းစည်းမှုသည် ထိုနေရာတွင် အတည်ပြုခြင်းကို ကိုင်တွယ်ရမည်။ ဝက်ဘ်ဆိုက် လော့ဂ်အင် ဟန်းဒလာကို ပြောင်းခြင်းဖြင့် ထို ယခင်စိန်ခေါ်မှုကို ပြုပြင်၍ မရနိုင်ပါ။
အထောက်အထား ပါဝင်သော ပရောက်စီ URL များသည် ဟောင်းသော ဥပမာများတွင် တွေ့ရသော အခြားပုံစံ ဖြစ်သည်။ အသုံးပြုပါက URL ခွဲခြားသတ်မှတ်ချက်များကို မှန်ကန်စွာ ကုဒ်လုပ်ပြီး ဖြစ်ပေါ်လာသော လျှို့ဝှက်ပါသော URL ကို မှတ်တမ်းများမှ ခွာထားပါ။