Използвайте go-ieproxy за избор на прокси според URL в Windows
Използвайте go-ieproxy.GetProxyFunc върху собствен транспорт, вместо да изравнявате автоматичната политика на Windows до статични стойности на средата.
След като 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 текущият потребител може да се различава от потребителя на работния плот, чийто браузър работи. Проверете сервизния акаунт и действителната дестинация, когато сравнявате резултата. Откриването предоставя кандидат за маршрут, а не удостоверяване или гаранция, че крайната точка е достъпна.