Zachovejte ProxyFromEnvironment při úpravě HTTP transportu v Go
Zachovejte výběr proxy z prostředí v Go, když upravujete časové limity transportu nebo fondy připojení, místo abyste výchozí hodnotu nahradili polem Proxy s nulovou hodnotou.
Standardní DefaultTransport v Go nastavuje Proxy na ProxyFromEnvironment. Samostatně vytvořený &http.Transport{} má funkci Proxy nil, která nevybírá žádnou proxy.
Tento rozdíl se může objevit poté, co přidáte transport jen kvůli změně časového limitu. Pokud je standardní výchozí hodnota stále nainstalovaná, naklonujte ji a změňte pole, které potřebujete:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klon zachovává výběr proxy z prostředí i ostatní výchozí nastavení transportu. Typová aserce předpokládá, že aplikace nenahradila DefaultTransport jiným RoundTripperem.
U transportu záměrně vytvořeného od nuly nastavte Proxy: http.ProxyFromEnvironment výslovně, pokud je to jeho směrovací politika. Výslovná funkce ProxyURL vyjadřuje jinou politiku: jeden vybraný prostředník.
Transport nakonfigurujte dříve, než jej začnou používat souběžné požadavky, a poté jej znovu používejte pro danou zátěž. Změna sdíleného výchozího objektu může ovlivnit nesouvisející klienty.
Vlastní nastavení TLS je oddělené. Vypnutí ověřování certifikátů není nutné k zachování zjišťování proxy a změnilo by zabezpečení každého odpovídajícího požadavku HTTPS.