Fylg við Go CONNECT-støðuni í OnProxyConnectResponse
Set krókina á transportin frammanundan fyrispurningum; at lata nil aftur varðveitir vanliga tunnelstøðu-kontrollina.
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
transport.OnProxyConnectResponse = func(
_ context.Context,
_ *url.URL,
_ *http.Request,
response *http.Response,
) error {
observeConnect(response.StatusCode, response.Header.Get("X-Proxy-Region"))
return nil
}
client := &http.Client{Transport: transport}Brúka context, net/http og net/url; standard slagtýpu-ástandið gongur út frá tí at hesin transporturin verður verandi settur. proxyURL verður greinaður, og observeConnect má vera tryggur við samskeið. Fyri loyvd almenn HTTPS-kanningar veitir Listi yvir HTTP-proxyar evnar til tess proxy URL.
Callbackið koyrir áðrenn CONNECT verður kannað fyri eydnað 200, so tað kann eisini síggja 407. Nil heldur vanligu kontrollini fram og tekur ikki ímóti einum vrakaðum tunli; ein feilur letur fyrispurningin miseydnast.
X-Proxy-Region er eitt dømi, sum veitandi ásetur. Les støðu og headers her og lat ognina av body og socket vera hjá Transport, sum tá tekur sær TLS á málinum.
Hetta fylgir við nýggjari tunnel-uppseting, ikki hvørjum fyrispurningi. Ein endurnýtt samband hevur einki nýtt CONNECT-svar, og svar netstaðarins hevur serstaka headers.