Zachovajte ProxyFromEnvironment pri úprave HTTP transportu v Go
Zachovajte výber proxy z prostredia v Go, keď upravujete časové limity alebo fondy pripojení transportu, namiesto nahradenia predvolenej hodnoty poľom Proxy s nulovou hodnotou.
Štandardný DefaultTransport v Go nastavuje Proxy na ProxyFromEnvironment. Samostatne vytvorený &http.Transport{} má funkciu Proxy nil, ktorá nevyberá žiadnu proxy.
Tento rozdiel sa môže objaviť po pridaní transportu len kvôli zmene časového limitu. Kým je štandardná predvolená hodnota stále nainštalovaná, naklonujte ju a zmeňte potrebné pole:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klon zachováva výber proxy z prostredia a ostatné predvolené nastavenia transportu. Typová asercia predpokladá, že aplikácia nenahradila DefaultTransport iným RoundTripperom.
Pri transporte zámerne vytvorenom od nuly nastavte Proxy: http.ProxyFromEnvironment výslovne, ak je to jeho smerovacia politika. Výslovná funkcia ProxyURL vyjadruje inú politiku: jeden vybraný prostredník.
Transport nakonfigurujte skôr, než ho začnú používať súbežné požiadavky, a potom ho znova používajte pre danú záťaž. Zmena zdieľaného predvoleného objektu môže ovplyvniť nesúvisiacich klientov.
Vlastné nastavenia TLS sú oddelené. Vypnutie overovania certifikátov nie je potrebné na zachovanie zisťovania proxy a zmenilo by zabezpečenie každej zodpovedajúcej požiadavky HTTPS.