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}

Isticmaal context, net/http iyo net/url; sheegashada nooca caadiga ah waxay u malaynaysaa in transport-kaas uu sii rakiban yahay. proxyURL waa la falanqeeyaa, observeConnectna waa inuu ahaadaa mid ammaan ah xagga isku-dhac. Baaritaannada HTTPS ee dadweynaha ee la oggolaaday, Liiska proxy-ga HTTP waxay bixisaa musharixiin loogu talagalay proxy URL-kaas.

Callback-ga wuxuu shaqeeyaa ka hor inta aan CONNECT loo hubin 200 guul leh, sidaas darteed wuxuu sidoo kale arki karaa 407. Nil wuxuu sii wadaa hubinta caadiga ah oo ma aqbalo tunnel la diiday; khaladku wuxuu fashilmaa codsiga.

X-Proxy-Region waa tusaale uu qeexay bixiye. Halkan ka akhri xaaladda iyo cinwaannada oo u dhaaf lahaanshaha jidhka iyo socket-ka Transport, kaas oo markaas maamula TLS-ka meesha loo socdo.

Tani waxay fiirsataa dhismaha tunnel cusub, ma aha codsi kasta. Xiriirka dib loo isticmaalay ma laha jawaab CONNECT cusub, jawaabta website-kana waxay leedahay cinwaanno gaar ah.

Maqaallo la xiriira