Štandardný DefaultTransport v Go nastavuje Proxy na ProxyFromEnvironment. Samostatne vytvorený &http.Transport{} má funkciu Proxy nil, ktorá nevyberá žiadnu proxy.

Tento rozdiel sa môže objaviť po pridaní transportu len kvôli zmene časového limitu. Kým je štandardná predvolená hodnota stále nainštalovaná, naklonujte ju a zmeňte potrebné pole:

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

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

Klon zachováva výber proxy z prostredia a ostatné predvolené nastavenia transportu. Typová asercia predpokladá, že aplikácia nenahradila DefaultTransport iným RoundTripperom.

Pri transporte zámerne vytvorenom od nuly nastavte Proxy: http.ProxyFromEnvironment výslovne, ak je to jeho smerovacia politika. Výslovná funkcia ProxyURL vyjadruje inú politiku: jeden vybraný prostredník.

Transport nakonfigurujte skôr, než ho začnú používať súbežné požiadavky, a potom ho znova používajte pre danú záťaž. Zmena zdieľaného predvoleného objektu môže ovplyvniť nesúvisiacich klientov.

Vlastné nastavenia TLS sú oddelené. Vypnutie overovania certifikátov nie je potrebné na zachovanie zisťovania proxy a zmenilo by zabezpečenie každej zodpovedajúcej požiadavky HTTPS.

Súvisiace články