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

Ta se razlika može pojaviti nakon dodavanja transporta samo radi promjene vremenskog ograničenja. 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 okoline 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 drukč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 odvojene su. Onemogućavanje provjere certifikata nije potrebno da bi se zadržalo otkrivanje proxyja i promijenilo bi sigurnost svakog odgovarajućeg HTTPS zahtjeva.

Povezani članci