En header, der føjes til http.Request.Header, beskriver destinationsanmodningen. Når HTTPS bruger en HTTP-proxy, udfører transporten først CONNECT. Destinationsanmodningens headere er ikke en generel konfigurations-API for den tidligere udveksling.

For en statisk header, som din proxy kræver, skal du konfigurere transportens ProxyConnectHeader:

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

Her er proxyURL den parsede slutpunkts-URL. Headeren er illustrativ og kun nyttig, når proxyoperatøren definerer sådant et felt.

For en værdi, der vælges pr. proxy eller destination, brug GetProxyConnectHeader. Det dokumenterede callback modtager proxy-URL'en og CONNECT-målet. Når dette callback ikke er nil, ignoreres det statiske felt ProxyConnectHeader.

Hold værdierne inden for det tilsigtede område. En kontomarkering kun til proxyen hører til proxyudvekslingen; en autorisationsværdi for et websted hører til destinationsanmodningen. Hvis et callback ikke kan frembringe den krævede handshake-værdi, skal du returnere dets fejl i stedet for stille at sende en anden konfigureret anmodning.

Disse indstillinger tilpasser CONNECT-håndteringen. De opfinder ikke en brugerdefineret godkendelsesprotokol og ændrer ikke proxy-tjenestens adgangspolitik.

Relaterede artikler