Go standardni DefaultTransport postavlja Proxy na ProxyFromEnvironment. Zasebno izgrađen &http.Transport{} ima nil Proxy funkciju, što ne bira nijedan proxy.

Ta razlika se može pojaviti nakon dodavanja transporta samo radi promjene vremenskog limita. Dok je standardni zadani još instaliran, klonirajte ga i promijenite polje koje vam treba:

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

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

Klon zadržava odabir proxyja iz okruženja i ostale zadane postavke transporta. Provjera tipa pretpostavlja da aplikacija nije zamijenila DefaultTransport drugim RoundTripperom.

Za transport namjerno izgrađen od nule, postavite Proxy: http.ProxyFromEnvironment izričito kada je to njegova politika usmjeravanja. Izričita ProxyURL funkcija izražava drugačiju politiku: jedan odabrani posrednik.

Konfigurirajte transport prije nego što ga paralelni zahtjevi počnu koristiti, a zatim ga ponovno upotrijebite za radni teret. Promjena zajedničkog zadanog objekta može utjecati na nepovezane klijente.

Prilagođene TLS postavke su odvojene. Onemogućavanje provjere certifikata nije potrebno da bi se zadržalo otkrivanje proxyja i promijenilo bi sigurnost svakog odgovarajućeg HTTPS zahtjeva.

Povezani članci