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}

context፣ net/http እና net/url ይጠቀሙ፤ የነባሪው የአይነት ማረጋገጫ ትራንስፖርቱ መጫኑን ይገምታል። proxyURL ይተነተናል፣ observeConnect ደግሞ በአንድ ጊዜ ብዙ ጥያቄዎችን ለማስተናገድ ደህንነቱ የተጠበቀ መሆን አለበት። ለተፈቀዱ የህዝብ HTTPS ምርመራዎች የHTTP ፕሮክሲ ዝርዝር ለዚያ proxy URL እጩዎችን ያቀርባል።

Callbackው CONNECT ስኬታማ 200 መሆኑን ከመመርመሩ በፊት ይሰራል፣ ስለዚህ 407ንም ማየት ይችላል። Nil የተለመደውን ማረጋገጫ ይቀጥላል፤ ውድቅ የተደረገ ቱነልን አይቀበልም፤ ስህተት ጥያቄውን ያስተጓጉላል።

X-Proxy-Region በአቅራቢው የተወሰነ ምሳሌ ነው። ሁኔታ እና ራስጌዎችን እዚህ ያንብቡ፤ የአካል እና የሶኬት ባለቤትነትን ለTransport ይተዉ፣ እሱም የመዳረሻውን TLS ይይዛል።

ይህ አዲስ የቱነል ዝግጅትን ይከታተላል፣ ሁሉንም ጥያቄዎች አይደለም። እንደገና ጥቅም ላይ የዋለ ግንኙነት አዲስ CONNECT ምላሽ የለውም፣ የድረ-ገጹ ምላሽም የተለያዩ ራስጌዎች አሉት።

ተዛማጅ ጽሑፎች