Mantingueu ProxyFromEnvironment en personalitzar el transport HTTP de Go
Conserveu la selecció de proxy de l'entorn de Go quan personalitzeu temps d'espera o agrupacions de connexions, en lloc de substituir el valor per defecte per un camp Proxy buit.
El DefaultTransport estàndard de Go estableix Proxy a ProxyFromEnvironment. Un &http.Transport{} construït a part té una funció Proxy nil, que no selecciona cap proxy.
Aquesta diferència pot aparèixer després d'afegir un transport només per canviar un temps d'espera. Amb el valor per defecte estàndard encara instal·lat, cloneu-lo i canvieu el camp que necessiteu:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}El clon conserva la selecció de proxy de l'entorn i la resta de paràmetres per defecte del transport. L'asserció de tipus assumeix que l'aplicació no ha substituït DefaultTransport per un altre RoundTripper.
Per a un transport construït intencionadament des de zero, establiu Proxy: http.ProxyFromEnvironment explícitament quan aquesta sigui la seva política d'encaminament. Una funció ProxyURL explícita expressa una política diferent: un intermediari seleccionat.
Configureu el transport abans que les peticions simultànies l'utilitzin i, després, reutilitzeu-lo per a la càrrega de treball. Canviar un objecte compartit per defecte pot afectar clients no relacionats.
Els paràmetres TLS personalitzats són a part. No cal desactivar la verificació de certificats per conservar el descobriment de proxy, i canviaria la seguretat de cada petició HTTPS coincident.