Заголовок, добавленный в http.Request.Header, описывает запрос к месту назначения. Когда HTTPS использует HTTP-прокси, transport сначала выполняет CONNECT. Заголовки запроса к месту назначения не являются общим API настройки для этого более раннего обмена.

Для статического заголовка, требуемого вашим прокси, настройте ProxyConnectHeader транспорта:

transport := &http.Transport{
    Proxy: http.ProxyURL(proxyURL),
    ProxyConnectHeader: http.Header{
        "X-Proxy-Account": []string{"example-account"},
    },
}

Здесь proxyURL — разобранный URL конечной точки. Заголовок приведён для примера и полезен только тогда, когда оператор прокси определяет такое поле.

Для значения, выбираемого для каждого прокси или места назначения, используйте GetProxyConnectHeader. Документированная функция обратного вызова получает URL прокси и цель CONNECT. Когда эта функция не равна nil, статическое поле ProxyConnectHeader игнорируется.

Держите значения в предполагаемой области. Маркер учётной записи только для прокси относится к обмену с прокси; значение авторизации веб-сайта относится к запросу к месту назначения. Если функция обратного вызова не может выдать требуемое значение рукопожатия, верните её ошибку, а не отправляйте молча запрос с другой конфигурацией.

Эти параметры настраивают обработку CONNECT. Они не изобретают собственный протокол аутентификации и не меняют политику доступа прокси-сервиса.

Похожие статьи