Как в Go lang сделать HTTP-запрос через прокси

Существует несколько способов. Первый — через переменную окружения. Он будет хорош для простых задач и может работать без правки Go-кода. Выполните в bash перед запуском своего приложения:

export HTTP_PROXY="http://proxyIp:proxyPort"

Либо же аналогично можно выполнить из программы:

os.Setenv("HTTP_PROXY", "http://proxyIp:proxyPort")

Теперь рассмотрим более сложный вариант, для этого нужно сконфигурировать клиент:

proxyUrl, err := url.Parse("http://proxyIp:proxyPort")
myClient := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyUrl)}}

Либо же настроить дефолтный клиент:

proxyUrl, err := url.Parse("http://proxyIp:proxyPort")
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyUrl)}