Подключиться к серверу через прокси - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу подключиться к серверу через прокси-сервер, который у меня есть.Я ищу что-то похожее на HTTPConnection.set_tunnel Python, есть ли что-то подобное в golang?

---- edit -----

Я пытаюсь создатьБудет ли этот код работать правильно при подключении к серверу, который позволяет самостоятельно подписывать сертификаты и передавать их через прокси-сервер?

func CreateProxyClient(serverProxy string, sid string, portProxy int) (*Client, error) {
    http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}

    proxyUrl, _ := url.Parse(serverProxy+":"+strconv.Itoa(portProxy))
    tr := &http.Transport{
        Proxy: http.ProxyURL(proxyUrl),
    }
    var netClient = &http.Client{
        Timeout: time.Second * 10,
        Transport: tr,
    }
    return &Client{netClient, serverProxy, sid}, nil
}

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете установить переменную окружения HTTP_PROXY для HTTP или HTTPS_PROXY для HTTPS, чтобы использовать ее по умолчанию для транспорта http.

Также в качестве альтернативы вы можете создать http.Transport самостоятельно с помощью Proxyв поле установлено значение http.ProxyURL вызова функции или используется пользовательская реализация.

Пример:

proxyURL, _ := url.Parse("http://proxy.example.com:port")
http.DefaultTransport = &http.Transport{
    Proxy: http.ProxyURL(proxyURL),
}
// request using proxy
resp, _ := http.Get("https://google.com"))
...