Калі 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 бягучы карыстальнік можа адрознівацца ад карыстальніка працоўнага стала, чый браўзер працуе. Праверце ўліковы запіс службы і фактычны пункт прызначэння, параўноўваючы вынік. Выяўленне дае кандыдата на маршрут, а не аўтэнтыфікацыю і не гарантыю дасяжнасці канчатковай кропкі.

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