@Koteezy

Как правильно выставить прокси вида user:pass@host:port?

Как правильно выставить прокси вида user:pass@host:port для http.Client ( Transport ? )

Сейчас пытаюсь выставить вот так:
usr := url.UserPassword("log", "pass")
u := url.URL{
		User: usr,
		Host: "host",
}
tr.Proxy = http.ProxyURL(&u)


Но получаю при запросе ошибку: Authentication Required

При попытки выставить через url.Parse(..), получаю это:
{
"Scheme":"Тутлогин",
"Opaque":"пароль@ип:порт",
"User":null,
"Host":"",
"Path":"",
"RawPath":"",
"ForceQuery":false,
"RawQuery":"",
"Fragment":""
}


А это вообще не то что нужно..

upd:
ок. понял что если скармливать Parse именно url ( как собсна, и написано в описании метода ), то на выходе уже получается нормальный вариант http.Url, но все равно без логина и пароля.
  • Вопрос задан
  • 1500 просмотров
Пригласить эксперта
Ответы на вопрос 1
igorzakhar
@igorzakhar
Опущена обработка ошибок.
import (
	"net/http"
	"net/url"
)

func main() {

	urlStr := "http://..."

	request, err := http.NewRequest("GET", urlStr, nil)
	proxyURL, err := url.Parse("http://username:password@host:port")

	transport := &http.Transport{
		Proxy: http.ProxyURL(proxyURL),
	}

	client := &http.Client{
		Transport: transport,
	}

	response, err := client.Do(request)

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы