Unha cabeceira engadida a http.Request.Header describe a petición de destino. Cando HTTPS usa un proxy HTTP, o transport realiza primeiro CONNECT. As cabeceiras da petición de destino non son unha API de configuración xeral para ese intercambio anterior.

Para unha cabeceira estática que exixa o teu proxy, configura o ProxyConnectHeader do transport:

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

Aquí proxyURL é a URL do punto final analizada. A cabeceira é ilustrativa e só é útil cando o operador do proxy define ese campo.

Para un valor escollido por proxy ou destino, usa GetProxyConnectHeader. A función de retorno documentada recibe a URL do proxy e o obxectivo CONNECT. Cando esta función non é nil, ignórase o campo estático ProxyConnectHeader.

Mantén os valores no ámbito previsto. Unha marca de conta só para o proxy pertence ao intercambio co proxy; un valor de autorización dun sitio web pertence á petición de destino. Se unha función de retorno non pode producir o valor de aperta de mans requirido, devolve o seu erro en vez de enviar silenciosamente unha petición configurada doutro xeito.

Estes axustes personalizan o tratamento de CONNECT. Non inventan un protocolo de autenticación propio nin cambian a política de acceso do servizo de proxy.

Artigos relacionados