Go se CONNECT-status in OnProxyConnectResponse waarneem
Installeer die haak op die transport voor versoeke; om nil terug te gee behou sy normale tonnelstatus-kontrole.
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}Gebruik context, net/http en net/url; die standaard-tipe-asserting aanvaar dat daardie transport geinstalleer bly. proxyURL word ontleed, en observeConnect moet gelyktydigheidsveilig wees. Vir toegelate openbare HTTPS-toetse verskaf die HTTP-proxylys kandidate vir daardie proxy-URL.
Die terugroep loop voordat CONNECT vir 'n suksesvolle 200 nagegaan word, so dit kan ook 407 waarneem. Nil laat die normale kontrole voortgaan en aanvaar nie 'n verwerpte tonnel nie; 'n fout laat die versoek misluk.
X-Proxy-Region is 'n voorbeeld wat deur die verskaffer bepaal word. Lees status en opskrifte hier en laat die liggaam en sokkie by Transport, wat dan TLS na die bestemming hanteer.
Dit neem nuwe tonnelopstelling waar, nie elke versoek nie. 'n Hergebruikte verbinding het geen nuwe CONNECT-antwoord nie, en die webwerf se antwoord het aparte opskrifte.