from io import BytesIO
import pycurl

body = BytesIO()
curl = pycurl.Curl()
try:
    curl.setopt(pycurl.URL, "https://api.example/")
    curl.setopt(pycurl.PROXY, "https://proxy.example:8443")
    curl.setopt(pycurl.PROXY_CAINFO, "/path/to/proxy-ca.pem")
    curl.setopt(pycurl.CAINFO, "/path/to/origin-ca.pem")
    curl.setopt(pycurl.CONNECTTIMEOUT, 5)
    curl.setopt(pycurl.TIMEOUT, 30)
    curl.setopt(pycurl.WRITEDATA, body)
    curl.perform()
finally:
    curl.close()

HTTPS proxy များကို ပံ့ပိုးသော PycURL/libcurl build ကို အသုံးပြုပါ။ bundle လမ်းကြောင်းများသည် ရည်ရွယ်ထားသော ယုံကြည်မှုအစုများကို ကိုယ်စားပြုသည်။ PROXY_CAINFO သည် ကြားခံကို စစ်ဆေးသည်။ CAINFO သည် ပန်းတိုင်၏ TLS ကို စစ်ဆေးသည်။ ရှိပြီးသား ယုံကြည်မှုက ထိုချိတ်ဆက်မှုကို ဖုံးလွှမ်းပြီးဖြစ်ပါက တိကျသော အစားထိုးသတ်မှတ်ချက်ကို ချန်လှပ်ပါ။

PROXY ရှိ URL သည် ၎င်း၏ listener ကို ဖော်ပြသည်။ ကိန်းဂဏန်း PROXYTYPE ခန့်မှန်းချက် မလိုအပ်ပါ။ သာမန် HTTP listener အတွက် ပန်းတိုင်က HTTPS ဖြစ်နေသော်လည်း URL သည် http:// အဖြစ် ဆက်ရှိသည်။ ထိုအခြေအနေတွင် HTTP proxy စာရင်း သည် endpoint ကိုယ်စားလှယ်လောင်းများကို ပေးသည်။ proxy TLS bundle သည် listener အမှန်တကယ် TLS အသုံးပြုမှသာ သက်ဆိုင်သည်။

လိုအပ်ပါက PROXYUSERNAME နှင့် PROXYPASSWORD မှတစ်ဆင့် proxy အကောင့် ပေးပါ။ လက်မှတ် စစ်ဆေးမှုကို ထိန်းသိမ်းပါ။ proxy စစ်ဆေးမှုကို ပိတ်ခြင်းသည် ပျောက်နေသော အာဏာပိုင်ကို တပ်ဆင်မည့်အစား ကြားခံ၏ အထောက်အထား စစ်ဆေးမှုကို ဖယ်ရှားသည်။

ဆက်စပ်ဆောင်းပါးများ