HTTPX တွင် proxy နှင့် mounts ဖြင့် proxy လမ်းကြောင်းရွေးခြင်း
HTTPX proxy နှင့် transport mounts ကို မှန်ကန်သော scheme၊ ရှင်းလင်းသော environment behavior၊ သီးခြား connection နှင့် read limits ဖြင့် အသုံးပြုပါ။
Endpoint တစ်ခုက client requests ကို ကိုင်တွယ်ရမည်ဆိုလျှင် proxy= သုံးပါ။ Destination scheme အလိုက် လမ်းကြောင်းခွဲရမည်ဆိုလျှင် mounts= သုံးပါ။ ဤနမူနာများသည် ထို HTTPX interface များကို သုံးသည်။ အဟောင်း proxies= API သုံးသော project သည် ၎င်း version နှင့်ကိုက်သည့် configuration လိုသည်။
Endpoint တစ်ခု
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Local listener ကို အလုပ်လုပ်နေသော HTTP proxy ဖြင့် အစားထိုးပါ။ HTTP proxy စာရင်းမှ ရွေးချယ်မှုကိုလည်း သင့် destination နှင့် စမ်းသပ်ရမည်။ HTTPS target သည် CONNECT မှတစ်ဆင့် ဤ http:// endpoint ကို သုံးနိုင်သည်။ Scheme ကို https:// ပြောင်းခြင်းက proxy ကိုယ်တိုင်ဆီ TLS တောင်းခြင်းဖြစ်ပြီး listener နှင့် client နှစ်ခုစလုံး ပံ့ပိုးရမည်။
Destination scheme အလိုက် လမ်းကြောင်းခွဲခြင်း
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Mount keys သည် target URL များနှင့် တိုက်ဆိုင်သည်။ ဤနေရာတွင် HTTP targets က port 8080၊ HTTPS targets က port 8081 ကို ရွေးသည်။ Proxy value က listener ၏ ကိုယ်ပိုင် protocol ကို ဖော်ပြသဖြင့် HTTPS mount ထဲတွင် http:// proxy ရှိခြင်းက မှန်ကန်သည်။ ကိုယ်ပိုင် endpoints ထည့်ပြီး destination scheme နှစ်ခုစလုံး စစ်ပါ။
နှစ်နည်းစလုံးက client နှင့် ပေးထားသော transports တွင် trust_env=False သတ်မှတ်သည်။ မဟုတ်ပါက HTTPX သည် proxy နှင့် certificate environment variables ကို default အဖြစ် ဖတ်သည်။ Deployment က ၎င်းတို့ကို အားကိုးပါက discovery ဖွင့်ထားပါ သို့မဟုတ် လိုသည့် route နှင့် trust ကို ရှင်းလင်းစွာသတ်မှတ်ပါ။ Private trust အတွက် HTTPX version ပံ့ပိုးသည့် TLS context နှင့် CA configuration ကို သုံးပြီး destination verification ကို ဖွင့်ထားပါ။ HTTPS proxy trust သည် destination trust နှင့် ခွဲထားနိုင်သည်။
httpx.Timeout(15.0, connect=5.0) က connection timeout ကို အစားထိုးပြီး အခြားသတ်မှတ်ထားသော timeout components ကို default value ပေးသည်။ Read၊ write နှင့် pool wait တွင် သီးခြားကန့်သတ်ချက်ရှိသည်။ ဆယ့်ငါးစက္ကန့်သည် စုစုပေါင်းကုန်ဆုံးချိန်၏ deadline မဟုတ်ပါ။ Pool timeout က အခြားအလုပ်တစ်ခုက ရရှိနိုင်သော connection များကို ကိုင်ထားကြောင်းလည်း ဆိုလိုနိုင်သည်။ Proxy ကို မလှမ်းမီဟု မသတ်မှတ်မီ client နှင့် streaming response များကို မှန်ကန်စွာပိတ်ပါ။