Ohranite ProxyFromEnvironment pri prilagajanju transporta HTTP v Go
Ohranite izbiro proxy iz okolja Go, ko prilagajate časovne omejitve ali nize povezav transporta, namesto da bi privzeto vrednost zamenjali s poljem Proxy z ničelno vrednostjo.
Standardni DefaultTransport v Go nastavi Proxy na ProxyFromEnvironment. Ločeno zgrajen &http.Transport{} ima funkcijo Proxy nil, ki ne izbere nobenega proxyja.
Ta razlika se lahko pojavi po dodajanju transporta samo zaradi spremembe časovne omejitve. Dokler je standardna privzeta vrednost še nameščena, jo klonirajte in spremenite potrebno polje:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klon ohrani izbiro proxy iz okolja in druge privzete nastavitve transporta. Preverjanje tipa predpostavlja, da aplikacija ni zamenjala DefaultTransport z drugim RoundTripperjem.
Za transport, namerno zgrajen od začetka, eksplicitno nastavite Proxy: http.ProxyFromEnvironment, kadar je to njegova usmerjevalna politika. Eksplicitna funkcija ProxyURL izraža drugačno politiko: en izbran posrednik.
Transport konfigurirajte, preden ga začnejo uporabljati sočasne zahteve, nato pa ga znova uporabite za delovno obremenitev. Spreminjanje skupnega privzetega predmeta lahko vpliva na nepovezane odjemalce.
Nastavitve TLS po meri so ločene. Onemogočanje preverjanja potrdil ni potrebno za ohranitev odkrivanja proxyja in bi spremenilo varnost vsake ustrezne zahteve HTTPS.