Запазете ProxyFromEnvironment при настройка на HTTP транспорта на Go
Запазете избора на прокси от средата в Go, когато настройвате таймаути или пулове от връзки, вместо да замените подразбиращия се с поле Proxy с нулева стойност.
Стандартният DefaultTransport в Go задава Proxy на ProxyFromEnvironment. Отделно създаденият &http.Transport{} има nil функция Proxy, което не избира прокси.
Тази разлика може да се появи след добавяне на транспорт само за да се смени таймаут. Докато стандартната подразбираща се стойност е инсталирана, клонирайте я и сменете нужното поле:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Клонингът запазва избора на прокси от средата и останалите подразбиращи се настройки на транспорта. Проверката на типа предполага, че приложението не е заменило DefaultTransport с друг RoundTripper.
За транспорт, съзнателно изграден от нулата, задайте Proxy: http.ProxyFromEnvironment изрично, когато това е неговата политика за маршрутизиране. Изричната функция ProxyURL изразява друга политика: един избран посредник.
Конфигурирайте транспорта, преди паралелни заявки да го използват, след което го използвайте повторно за натоварването. Промяната на споделен подразбиращ се обект може да засегне несвързани клиенти.
Персонализираните TLS настройки са отделни. Изключването на проверката на сертификата не е необходимо, за да се запази откриването на прокси, и би променило сигурността на всяка съответстваща HTTPS заявка.