Twisted ProxyAgent-ဖြင့် ရိုးရှင်းသော HTTP အတွက် Basic အတည်ပြုခြင်း
ဘိုက်တန်ဖိုးရှိ တောင်းဆိုမှု ခေါင်းစီးများဖြင့် Twisted ProxyAgent မှတစ်ဆင့် အတည်ပြုပြီးသော ရိုးရှင်းသည့် HTTP တောင်းဆိုမှုကို ပို့ပါ။
ProxyAgent သည် သူ့အား ပေးထားသော endpoint မှတစ်ဆင့် ချိတ်ဆက်သည်။ ရိုးရှင်းသော HTTP တောင်းဆိုမှုနှင့် Basic အတည်ပြုခြင်းကို လက်ခံသော proxy အတွက် proxy လော့ဂ်အင်ကို ထို တောင်းဆိုမှု၏ Proxy-Authorization ခေါင်းစီးတွင် ထည့်ပါ။
import base64
from twisted.internet.endpoints import TCP4ClientEndpoint
from twisted.web.client import ProxyAgent
from twisted.web.http_headers import Headers
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
token = base64.b64encode(b'alice:REPLACE_WITH_PROXY_PASSWORD')
headers = Headers({b'Proxy-Authorization': [b'Basic ' + token]})
pending = agent.request(b'GET', b'http://example.com/', headers)ဤအပိုင်းသည် အပလီကေးရှင်းတွင် ၎င်း၏ reactor ရှိပြီးသားဟု ယူဆသည်။ နည်းလမ်း၊ URI နှင့် ဥပမာတွင် ပြသထားသော ခေါင်းစီးဒေတာတို့သည် ဘိုက်ကို အသုံးပြုသည်။ အမှန်တကယ် အထောက်အထားများကို အပလီကေးရှင်း၏ အထောက်အထားရင်းမြစ်တွင် သိမ်းပါ။ နေရာယူစာသားသည် ခေါင်းစီးကို မည်သို့တည်ဆောက်သည်ကိုသာ ပြသည်။ Base64 သည် ကုဒ်ပြောင်းခြင်းဖြစ်သောကြောင့် လျှို့ဝှက်မှုသည် ၎င်းကို သယ်ဆောင်သော ချိတ်ဆက်မှုအပေါ် မူတည်သည်။
ပြန်ပေးသော Deferred သည် တုံ့ပြန်မှု အရာဝတ္ထုကို ပေးသည်။ ထို အရာဝတ္ထုကို ရရှိခြင်းသည် တုံ့ပြန်မှု ကိုယ်ထည်ကို မစုဆောင်းပါ။ မှတ်တမ်းတင်ထားသော ကိုယ်ထည်ဖတ်ခြင်း အင်တာဖေ့စ်ဖြင့် ဖတ်ပြီး အချိန်ကိုက်မဟုတ်သော မအောင်မြင်မှုများကို ကိုင်တွယ်ပါ။ endpoint ၏ အချိန်သတ်မှတ်ချက်သည် ချိတ်ဆက်မှု တည်ဆောက်ခြင်းကို ကန့်သတ်သည်၊ တုံ့ပြန်မှု၏ တစ်သက်တာလုံးကို မဟုတ်ပါ။
ဥပမာသည် HTTP ဦးတည်ချက်ကို တမင်အသုံးပြုသည်။ URI အစီအစဉ်ကို ပြောင်းလဲရုံဖြင့် HTTPS အတွက် CONNECT ညှိနှိုင်းမှုကို ထည့်မပေးပါ။