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; ការអះអាងប្រភេទស្តង់ដារសន្មតថា transport នោះនៅតែត្រូវបានដំឡើង។ proxyURL ត្រូវបានញែកវិភាគ ហើយ observeConnect ត្រូវតែមានសុវត្ថិភាពចំពោះភាពព្រមព្រៀងគ្នា។ សម្រាប់ការសាកល្បង HTTPS សាធារណៈដែលបានអនុញ្ញាត បញ្ជី HTTP proxy ផ្តល់បេក្ខជនសម្រាប់ proxy URL នោះ។

Callback ដំណើរការមុនពេលពិនិត្យ CONNECT សម្រាប់ 200 ជោគជ័យ ដូច្នេះវាអាចសង្កេតឃើញ 407 ផងដែរ។ Nil បន្តការពិនិត្យធម្មតា ហើយមិនទទួលយកផ្លូវរូងដែលត្រូវបានបដិសេធទេ; កំហុសធ្វើឱ្យសំណើបរាជ័យ។

X-Proxy-Region គឺជាឧទាហរណ៍ដែលកំណត់ដោយអ្នកផ្តល់សេវា។ អានស្ថានភាព និងក្បាលនៅទីនេះ ហើយទុកកម្មសិទ្ធិតួ និង socket ឱ្យ Transport ដែលបន្ទាប់មកគ្រប់គ្រង TLS គោលដៅ។

នេះសង្កេតការបង្កើតផ្លូវរូងថ្មី មិនមែនរាល់សំណើទេ។ ការតភ្ជាប់ដែលប្រើឡើងវិញមិនមានការឆ្លើយតប CONNECT ថ្មីទេ ហើយការឆ្លើយតបរបស់គេហទំព័រមានក្បាលដាច់ដោយឡែក។

អត្ថបទពាក់ព័ន្ធ