O DefaultTransport estándar de Go establece Proxy en ProxyFromEnvironment. Un &http.Transport{} construído por separado ten unha función Proxy nil, que non selecciona ningún proxy.

Esa diferenza pode aparecer despois de engadir un transporte só para cambiar un tempo de espera. Co valor predeterminado estándar aínda instalado, clónao e cambia o campo que necesites:

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second

client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

O clon conserva a selección de proxy da contorna e o resto de axustes predeterminados do transporte. A aserción de tipo supón que a aplicación non substituíu DefaultTransport por outro RoundTripper.

Para un transporte construído deliberadamente desde cero, estabelece Proxy: http.ProxyFromEnvironment explicitamente cando esa sexa a súa política de enrutamento. Unha función ProxyURL explícita expresa unha política distinta: un intermediario seleccionado.

Configura o transporte antes de que as solicitudes simultáneas o usen e, despois, reutilízao para a carga de traballo. Cambiar un obxecto compartido predeterminado pode afectar clientes non relacionados.

Os axustes TLS personalizados son independentes. Non é necesario desactivar a verificación de certificados para conservar o descubrimento de proxy, e cambiaría a seguridade de cada solicitude HTTPS coincidente.

Artigos relacionados