Перейти в обход прокси - PullRequest
0 голосов
/ 03 мая 2018

Как я могу обойти (игнорировать прокси и не использовать no) прокси в Go?

Точно хочу свернуться или зайти на сайт и проверить код ответа.

У меня есть это:

os.Setenv("HTTPS_PROXY", "")
os.Setenv("HTTP_PROXY", "")

//Make Request and Check for Response

resp, err := http.Get("http://interneIP:80")
if err != nil {
    log.Fatal(err)
}

fmt.Println("HTTP Response Code : " + strconv.Itoa(resp.StatusCode))

if resp.StatusCode != 200 {
    fmt.Println("Not OK")
} else {
    fmt.Println("HTTP OK")
}

Но Setenv не может быть проанализирован, и другие методы, с которыми я получаю ту же ошибку, не могут быть проанализированы по URL. Так как я могу игнорировать мой прокси?

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете создать свой собственный транспорт http roundtripper, вы можете видеть тяги roundtripper в прокси из env vars, вам нужно установить его равным nil, если вы хотите обойти:

https://golang.org/pkg/net/http/#RoundTripper

Вот пример настраиваемого http-клиента: https://blog.abhi.host/blog/2016/02/27/golang-creating-https-connection-via/

В транспортных документах по умолчанию также упоминается, что вы можете использовать переменную NO_PROXY env var для исключения определенных URL / доменов из прокси-сервера по умолчанию, что может работать в вашем случае использования, например,

no_proxy = "*. Aventail.com, home.com, .seanet.com"

Я бы предположил, что в любом случае вам нужно будет установить env vars перед созданием вашего клиента, поэтому, возможно, просто сделайте два клиента, использующих разные env vars, если вы хотите иногда использовать прокси, а иногда нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...