Go ၏ စံ DefaultTransport သည် Proxy ကို ProxyFromEnvironment သို့ သတ်မှတ်သည်။ သီးခြားတည်ဆောက်ထားသော &http.Transport{} တွင် Proxy လုပ်ဆောင်ချက်သည် nil ဖြစ်သောကြောင့် မည်သည့် proxy ကိုမျှ မရွေးချယ်ပါ။

ဤကွာခြားချက်သည် အချိန်ကန့်သတ်ချက်တစ်ခုကို ပြောင်းရန်အတွက်သာ transport ထည့်ပြီးနောက် ပေါ်လာနိုင်သည်။ စံမူလသတ်မှတ်ချက် ရှိနေဆဲဖြစ်ပါက ၎င်းကို clone လုပ်ပြီး လိုအပ်သောအကွက်ကို ပြောင်းပါ။

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second

client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

clone သည် ပတ်ဝန်းကျင် proxy ရွေးချယ်မှုနှင့် အခြားမူလ transport ဆက်တင်များကို ထိန်းသိမ်းသည်။ အမျိုးအစားစစ်ဆေးမှုသည် application က DefaultTransport ကို အခြား RoundTripper ဖြင့် အစားမထိုးခဲ့ဟု ယူဆသည်။

ရည်ရွယ်ချက်ရှိရှိ လုံးဝမှစတင်၍ တည်ဆောက်ထားသော transport အတွက် ၎င်းသည် ၎င်း၏လမ်းကြောင်းသတ်မှတ်မှုမူဝါဒဖြစ်ပါက Proxy: http.ProxyFromEnvironment ကို ရှင်းလင်းစွာ သတ်မှတ်ပါ။ ရှင်းလင်းသော ProxyURL လုပ်ဆောင်ချက်သည် မတူညီသောမူဝါဒကို ဖော်ပြသည်− ရွေးချယ်ထားသော ကြားခံတစ်ခု။

တစ်ပြိုင်နက်တောင်းဆိုမှုများ အသုံးမပြုမီ transport ကို ပြင်ဆင်ပါ၊ ထို့နောက် အလုပ်စုအတွက် ပြန်လည်အသုံးပြုပါ။ မျှဝေထားသော မူလအရာဝတ္ထုကို ပြောင်းလဲခြင်းသည် မသက်ဆိုင်သော client များကို ထိခိုက်နိုင်သည်။

စိတ်ကြိုက် TLS ဆက်တင်များသည် သီးခြားဖြစ်သည်။ proxy ရှာဖွေတွေ့ရှိမှုကို ထိန်းသိမ်းရန် လက်မှတ်စစ်ဆေးမှုကို ပိတ်ရန် မလိုအပ်ဘဲ ၎င်းသည် ကိုက်ညီသော HTTPS တောင်းဆိုမှုတိုင်း၏ လုံခြုံရေးကို ပြောင်းလဲစေမည်။

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