A Go szabványos DefaultTransportja a Proxy mezőt ProxyFromEnvironment-re állítja. Egy külön létrehozott &http.Transport{} Proxy függvénye nil, ezért nem választ proxyot.

Ez a különbség akkor jelenhet meg, ha csak egy időkorlát módosításához adott hozzá transzportot. Ha a szabványos alapértelmezett még telepítve van, klónozza, és módosítsa a szükséges mezőt:

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

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

A klón megőrzi a környezeti proxyválasztást és a transzport többi alapértelmezett beállítását. A típusellenőrzés feltételezi, hogy az alkalmazás nem cserélte le a DefaultTransportot másik RoundTripperre.

A szándékosan nulláról épített transzportnál állítsa be kifejezetten a Proxy: http.ProxyFromEnvironment értéket, ha ez az útválasztási szabályzata. Egy kifejezett ProxyURL függvény más szabályzatot fejez ki: egy kiválasztott közvetítő.

A transzportot azelőtt konfigurálja, hogy párhuzamos kérések használnák, majd a munkaterheléshez újra használja. Egy megosztott alapértelmezett objektum módosítása nem kapcsolódó ügyfeleket is érinthet.

Az egyéni TLS-beállítások különállóak. A tanúsítvány-ellenőrzés kikapcsolása nem szükséges a proxyfelismerés megőrzéséhez, és minden megfelelő HTTPS-kérés biztonságát megváltoztatná.

Kapcsolódó cikkek