Metti le intestazioni CONNECT di Go sul Transport
Invia un'intestazione richiesta a un proxy HTTP durante CONNECT senza metterla sulla richiesta di destinazione.
Un'intestazione aggiunta a http.Request.Header descrive la richiesta di destinazione. Quando HTTPS usa un proxy HTTP, il transport esegue prima CONNECT. Le intestazioni della richiesta di destinazione non sono un'API di configurazione generale per quello scambio precedente.
Per un'intestazione statica richiesta dal proxy, configura ProxyConnectHeader del transport:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Qui proxyURL è l'URL dell'endpoint analizzato. L'intestazione è illustrativa ed è utile solo quando l'operatore del proxy definisce un campo del genere.
Per un valore scelto per proxy o destinazione, usa GetProxyConnectHeader. La callback documentata riceve l'URL del proxy e la destinazione CONNECT. Quando questa callback non è nil, il campo statico ProxyConnectHeader viene ignorato.
Mantieni i valori nell'ambito previsto. Un marcatore di account solo per il proxy appartiene allo scambio con il proxy; un valore di autorizzazione di un sito web appartiene alla richiesta di destinazione. Se una callback non riesce a produrre il valore di handshake richiesto, restituisci il suo errore invece di inviare silenziosamente una richiesta configurata diversamente.
Queste impostazioni personalizzano la gestione di CONNECT. Non inventano un protocollo di autenticazione personalizzato né cambiano la politica di accesso del servizio proxy.