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}

Lo context, net/http àti net/url; ìdánilójú irú ọ̀nà ìpìlẹ̀ gbà pé transport yẹn wà ní ìfisórí. A ń ṣàyẹ̀wò proxyURL, observeConnect sì gbọ́dọ̀ ní ààbò fún ìgbàṣe ní àkókò kan náà. Fún àwọn àyẹ̀wò HTTPS gbogbo ènìyàn tí a gbà láyè, Àkójọ proxy HTTP ń pèsè àwọn olùdíje fún URL proxy yẹn.

Callback náà ń ṣiṣẹ́ kí a tó ṣàyẹ̀wò CONNECT fún 200 tí ó ṣàṣeyọrí, nítorí náà ó lè tún ṣàkíyèsí 407. Nil ń tẹ̀síwájú ìṣàyẹ̀wò déédéé kò sì gba tunnel tí a kọ̀; àṣìṣe ń mú kí ìbéèrè kùnà.

X-Proxy-Region jẹ́ àpẹẹrẹ tí olùpèsè ṣàlàyé. Ka ipò àti àwọn àkọlé níbí kí o sì fi ẹ̀tọ́ ara àti socket fún Transport, tí yóò tó ṣàkóso TLS ibi-àfojúsùn.

Èyí ń ṣàkíyèsí ìdásílẹ̀ tunnel tuntun, kì í ṣe gbogbo ìbéèrè. Ìsopọ̀ tí a tún lò kò ní ìdáhùn CONNECT tuntun, àwọn àkọlé ìdáhùn ojú-ìwé sì yàtọ̀.

Àwọn àpilẹ̀kọ tó jọra