Requests ၏ HTTPAdapter.proxy_headers ဖြင့် ပရောက်စီ ခေါင်းစီးများ သတ်မှတ်ခြင်း
ပရောက်စီက သတ်မှတ်သော အကွက်အတွက် HTTPAdapter.proxy_headers ကို တိုးချဲ့ပြီး Requests ၏ လက်ရှိ ပရောက်စီ-စစ်ဆေးအတည်ပြု ခေါင်းစီး ဖန်တီးမှုကို ထိန်းသိမ်းပါ။
ပရောက်စီ အော်ပရေတာက သတ်မှတ်သော ခေါင်းစီးအတွက် Requests သည် HTTPAdapter.proxy_headers ကို ပြင်ဆင်နိုင်သည့် နေရာအဖြစ် ပေးသည်−
from urllib.parse import urlsplit
import requests
from requests.adapters import HTTPAdapter
class TaggedProxy(HTTPAdapter):
def proxy_headers(self, proxy):
headers = super().proxy_headers(proxy)
endpoint = urlsplit(proxy)
if (endpoint.scheme == 'http'
and endpoint.hostname == 'proxy.example'
and endpoint.port == 8080):
headers['X-Proxy-Account'] = 'department-a'
return headers
with requests.Session() as session:
adapter = TaggedProxy()
session.mount('http://', adapter)
session.mount('https://', adapter)
response = session.get(
'https://service.example/data',
proxies={'https': 'http://proxy.example:8080'},
timeout=15,
)
X-Proxy-Account သည် ဤ ပရောက်စီက နားလည်သော အကွက်၏ ဥပမာသာဖြစ်ပြီး ကြားခံအားလုံးအတွက် စံနစ်ဖြင့် အတည်ပြုသည့် နည်းလမ်း မဟုတ်ပါ။
super().proxy_headers(proxy) ဖြင့် စတင်ပါ။ URL က Basic အကောင့် ပေးသောအခါ Requests သည် ထိုနည်းလမ်းဖြင့် Proxy-Authorization ကို ဖန်တီးသည်။ ရလဒ်တစ်ခုလုံးကို အစားထိုးခြင်းက ထိုအပြုအမူကို ဆုံးရှုံးစေနိုင်သည်။
အဒက်တာသည် ဤတန်ဖိုးများကို urllib3 ၏ ProxyManager သို့ ပို့သည်။ HTTPS ဥမင်တွင် ၎င်းတို့သည် CONNECT နှင့် အတူ ပါသွားသည်။ သာမန် တောင်းဆိုမှု ခေါင်းစီး မြေပုံက နောက်ပိုင်း ပန်းတိုင် တောင်းဆိုမှုကို ဖော်ပြသည်။
ပရောက်စီ မန်နေဂျာများကို ပရောက်စီ URL အလိုက် ကက်ရှ် လုပ်သည်။ ခေါ်တိုင်း ပြောင်းရမည့် တန်ဖိုးအတွက် ဤချိတ်ကို ကက်ရှ်မလုပ်သော စီးပွားရေး တောင်းဆိုမှုတိုင်း ပြန်ခေါ်မှုအဖြစ် မယူဆပါနှင့်။ အကောင့် အမှတ်အသား ပြောင်းလျှင် သယ်ယူပို့ဆောင်ရေး ပိုင်ဆိုင်မှုကို ထိုအလိုက် ရွေးပါ။
ရိုးရှင်းသော HTTP ပို့ဆောင်မှုတွင် ပရောက်စီ အကွက်များအတွက် ကြားခံ၏ ရည်ရွယ်ထားသော အသုံးပြုမှု မူဝါဒ လိုအပ်ဆဲဖြစ်သည်။ ကလိုင်း API တွင် ခေါင်းစီးသည် ပရောက်စီ-သီးသန့် ဖြစ်ခြင်းက ပရောက်စီက ဆက်ပို့လျှင် လျှို့ဝှက်မှု အာမခံချက် မဟုတ်ပါ။