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.

Relaterade artiklar