Lägg Gos CONNECT-rubriker på Transport
Skicka en obligatorisk rubrik till en HTTP-proxy under CONNECT utan att sätta den på förfrågan till målet.
En rubrik som läggs till i http.Request.Header beskriver förfrågan till målet. När HTTPS använder en HTTP-proxy utför transporten först CONNECT. Rubrikerna i förfrågan till målet är inte ett allmänt konfigurations-API för det tidigare utbytet.
För en statisk rubrik som din proxy kräver, konfigurera transportens ProxyConnectHeader:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Här är proxyURL den parsade slutpunkts-URL:en. Rubriken är illustrativ och bara användbar när proxyoperatören definierar ett sådant fält.
För ett värde som väljs per proxy eller mål, använd GetProxyConnectHeader. Den dokumenterade återkallelsen tar emot proxy-URL:en och CONNECT-målet. När denna återkallelse inte är nil ignoreras det statiska fältet ProxyConnectHeader.
Håll värdena inom det avsedda omfånget. En kontomarkering enbart för proxyn hör till proxyutbytet; ett auktoriseringsvärde för en webbplats hör till förfrågan till målet. Om en återkallelse inte kan producera det nödvändiga handskakningsvärdet, returnera dess fel i stället för att tyst skicka en annorlunda konfigurerad förfrågan.
Dessa inställningar anpassar CONNECT-hanteringen. De hittar inte på ett eget autentiseringsprotokoll och ändrar inte proxytjänstens åtkomstpolicy.