Стандартны DefaultTransport у Go усталёўвае Proxy на ProxyFromEnvironment. Асобна створаны &http.Transport{} мае пустую функцыю 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-запыту.

Падобныя артыкулы