Umiestnite hlavičky CONNECT Go na Transport
Odošlite požadovanú hlavičku HTTP proxy počas CONNECT bez toho, aby ste ju pridali k požiadavke cieľa.
Hlavička pridaná do http.Request.Header opisuje požiadavku cieľa. Keď HTTPS používa HTTP proxy, transport najprv vykoná CONNECT. Hlavičky požiadavky cieľa nie sú všeobecné konfiguračné API pre túto skoršiu výmenu.
Pre statickú hlavičku vyžadovanú vaším proxy nakonfigurujte ProxyConnectHeader transportu:
transport := &http.Transport{
Proxy: http.ProxyURL(proxyURL),
ProxyConnectHeader: http.Header{
"X-Proxy-Account": []string{"example-account"},
},
}Tu je proxyURL parsovaná URL koncového bodu. Hlavička je ilustratívna a užitočná len vtedy, keď operátor proxy definuje také pole.
Pre hodnotu volenú pre každý proxy alebo cieľ použite GetProxyConnectHeader. Dokumentovaný callback dostane URL proxy a cieľ CONNECT. Keď tento callback nie je nil, statické pole ProxyConnectHeader sa ignoruje.
Udržujte hodnoty v zamýšľanom rozsahu. Značka účtu určená len pre proxy patrí k výmene s proxy; hodnota autorizácie webu patrí k požiadavke cieľa. Ak callback nemôže vytvoriť požadovanú hodnotu handshake, vráťte jeho chybu namiesto tichého odoslania inak nakonfigurovanej požiadavky.
Tieto nastavenia prispôsobujú spracovanie CONNECT. Nevymýšľajú vlastný autentizačný protokol ani nemenia zásady prístupu proxy služby.