Panatilihin ang ProxyFromEnvironment kapag Ini-customize ang HTTP Transport ng Go
Panatilihin ang pagpili ng proxy mula sa environment ng Go kapag ini-customize ang mga timeout o pool ng koneksyon ng transport, sa halip na palitan ang default ng isang field na Proxy na walang laman.
Itinatakda ng standard na DefaultTransport ng Go ang Proxy sa ProxyFromEnvironment. Ang hiwalay na binuong &http.Transport{} ay may nil na function na Proxy, kaya wala itong pinipiling proxy.
Maaaring lumitaw ang pagkakaibang iyon pagkatapos magdagdag ng transport para lang baguhin ang timeout. Habang naka-install pa ang standard na default, kopyahin ito (clone) at baguhin ang field na kailangan mo:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Pinapanatili ng clone ang pagpili ng proxy mula sa environment at ang iba pang default na setting ng transport. Ipinapalagay ng type assertion na hindi pinalitan ng application ang DefaultTransport ng ibang RoundTripper.
Para sa transport na sadyang itinayo mula sa simula, tahasang itakda ang Proxy: http.ProxyFromEnvironment kapag iyon ang patakaran nito sa pagruruta. Ang tahasang function na ProxyURL ay nagpapahayag ng ibang patakaran: isang piniling tagapamagitan.
I-configure ang transport bago ito gamitin ng mga sabay-sabay na kahilingan, pagkatapos ay gamitin muli ito para sa workload. Ang pagbabago ng isang shared default na object ay maaaring makaapekto sa mga walang kaugnayang kliyente.
Ang mga custom na setting ng TLS ay hiwalay. Hindi kailangang i-disable ang verification ng certificate para mapanatili ang pagtuklas ng proxy, at babaguhin nito ang seguridad ng bawat tugmang kahilingang HTTPS.