Beha ezazu Go-ren CONNECT egoera OnProxyConnectResponse-en
Instalatu kakoa transporteaan eskaeren aurretik; nil itzultzeak tunel-egoeraren ohiko egiaztapena mantentzen du.
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}Erabili context, net/http eta net/url; tipo-afirmazio estandarrak transport hori instalatuta jarraitzen duela suposatzen du. proxyURL analizatzen da, eta observeConnect konkurrentziarekiko segurua izan behar da. Baimendutako HTTPS proba publikoetarako, HTTP proxy zerrenda-ek proxy URL horretarako hautagaiak ematen ditu.
Callback-a CONNECT 200 arrakastatsua den egiaztatu aurretik exekutatzen da, beraz 407 ere behatu dezake. Nil-ek ohiko egiaztapenarekin jarraitzen du eta ez du tunel baztertua onartzen; errore batek eskaera hutsarazten du.
X-Proxy-Region hornitzaileak definitutako adibidea da. Irakurri hemen egoera eta goiburuak, eta utzi gorputzaren eta socket-aren jabetza Transport-i, gero helmugako TLS kudeatzen baitu.
Honek tunel berriaren ezarpena behatzen du, ez eskaera bakoitza. Berrerabilitako konexioak ez du CONNECT erantzun berririk, eta webgunearen erantzunak goiburu bereiziak ditu.