Если go-ieproxy уже доступен, а стандартный транспорт по умолчанию всё ещё установлен, подключите его функцию прокси, учитывающую запрос:

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = ieproxy.GetProxyFunc()
client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

Импортируйте net/http, time и github.com/mattn/go-ieproxy и выполняйте запросы рабочей нагрузки через client. Проверка типа требует, чтобы DefaultTransport оставался http.Transport.

GetProxyFunc охватывает статические параметры, явный сценарий автоматической конфигурации и полностью автоматическое обнаружение. Его поиск в Windows использует конфигурацию текущего пользователя и обращается к реестру, если первый вызов API завершается неудачно.

OverrideEnvWithStaticProxy делает иной выбор: он экспортирует ручные параметры и не может сохранить автоматические решения для каждого пункта назначения. Используйте это преобразование только для намеренно статической политики.

Для службы Windows текущий пользователь может отличаться от пользователя рабочего стола, у которого работает браузер.Проверьте учётную запись службы и фактический пункт назначения при сравнении результата. Обнаружение даёт кандидата маршрута, а не аутентификацию и не гарантию доступности конечной точки.

Похожие статьи