Behåll ProxyFromEnvironment när du anpassar Gos HTTP-transport
Behåll Gos val av miljöproxy när du anpassar transportens tidsgränser eller anslutningspooler, i stället för att ersätta standarden med ett Proxy-fält med nollvärde.
Gos standard DefaultTransport ställer in Proxy till ProxyFromEnvironment. En separat byggd &http.Transport{} har en nil Proxy-funktion, som inte väljer någon proxy.
Den skillnaden kan uppstå efter att en transport lagts till bara för att ändra en tidsgräns. När standarden fortfarande är installerad, klona den och ändra fältet du behöver:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klonen behåller valet av miljöproxy och de övriga standardinställningarna för transporten. Typkontrollen förutsätter att programmet inte har ersatt DefaultTransport med en annan RoundTripper.
För en transport som medvetet byggts från grunden, sätt Proxy: http.ProxyFromEnvironment uttryckligen när det är dess routingpolicy. En uttrycklig ProxyURL-funktion uttrycker en annan policy: en vald mellanhand.
Konfigurera transporten innan samtidiga förfrågningar använder den och återanvänd den sedan för arbetsbelastningen. Att ändra ett delat standardobjekt kan påverka orelaterade klienter.
Anpassade TLS-inställningar är separata. Att inaktivera certifikatverifiering krävs inte för att behålla proxyupptäckt, och det skulle ändra säkerheten för varje matchande HTTPS-förfrågan.