Zachowaj ProxyFromEnvironment podczas dostosowywania transportu HTTP w Go
Zachowaj wybór proxy ze środowiska Go, dostosowując limity czasu transportu lub pule połączeń, zamiast zastępować wartość domyślną polem Proxy o wartości zerowej.
Standardowy DefaultTransport w Go ustawia Proxy na ProxyFromEnvironment. Osobno utworzony &http.Transport{} ma funkcję Proxy nil, która nie wybiera żadnego proxy.
Ta różnica może się pojawić po dodaniu transportu tylko po to, by zmienić limit czasu. Gdy standardowa wartość domyślna jest nadal zainstalowana, sklonuj ją i zmień potrzebne pole:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Klon zachowuje wybór proxy ze środowiska i pozostałe domyślne ustawienia transportu. Asercja typu zakłada, że aplikacja nie zastąpiła DefaultTransport innym RoundTripperem.
W przypadku transportu celowo zbudowanego od zera ustaw Proxy: http.ProxyFromEnvironment jawnie, gdy jest to jego polityka routingu. Jawna funkcja ProxyURL wyraża inną politykę: jeden wybrany pośrednik.
Skonfiguruj transport, zanim zaczną go używać równoległe żądania, a następnie używaj go ponownie dla danego obciążenia. Zmiana współdzielonego obiektu domyślnego może wpłynąć na niepowiązanych klientów.
Niestandardowe ustawienia TLS są osobne. Wyłączanie weryfikacji certyfikatów nie jest konieczne, aby zachować wykrywanie proxy, i zmieniłoby bezpieczeństwo każdego pasującego żądania HTTPS.