Behold ProxyFromEnvironment når du tilpasser Gos HTTP-transport
Bevar Gos valg af miljøproxy, når du tilpasser transporttidsgrænser eller forbindelsespuljer, i stedet for at erstatte standarden med et Proxy-felt med nulværdi.
Gos standard DefaultTransport sætter Proxy til ProxyFromEnvironment. En separat opbygget &http.Transport{} har en nil Proxy-funktion, som ikke vælger nogen proxy.
Forskellen kan opstå, efter at du har tilføjet en transport blot for at ændre en tidsgrænse. Når standarden stadig er installeret, klon den, og ændr det felt, du har brug for:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klonen bevarer valget af miljøproxy og de øvrige standardindstillinger for transporten. Typeassertionen forudsætter, at applikationen ikke har erstattet DefaultTransport med en anden RoundTripper.
For en transport, der bevidst er bygget fra bunden, skal du sætte Proxy: http.ProxyFromEnvironment eksplicit, når det er dens routingpolitik. En eksplicit ProxyURL-funktion udtrykker en anden politik: én valgt mellemmand.
Konfigurer transporten, før samtidige anmodninger bruger den, og genbrug den derefter til arbejdsbyrden. Ændring af et delt standardobjekt kan påvirke urelaterede klienter.
Tilpassede TLS-indstillinger er separate. Deaktivering af certifikatvalidering er ikke nødvendig for at beholde proxyopdagelse, og det ville ændre sikkerheden for hver matchende HTTPS-anmodning.