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}

Defnyddiwch context, net/http a net/url; mae'r aseriad math safonol yn tybio bod y transport hwnnw'n parhau i fod wedi'i osod. Mae proxyURL yn cael ei barsio, a rhaid i observeConnect fod yn ddiogel o ran cydamseredd. Ar gyfer profion HTTPS cyhoeddus a ganiateir, mae Rhestr proxïau HTTP yn darparu ymgeiswyr ar gyfer yr URL proxy hwnnw.

Mae'r alwad yn ôl yn rhedeg cyn gwirio CONNECT am 200 llwyddiannus, felly gall arsylwi 407 hefyd. Mae nil yn parhau â'r gwirio arferol ac nid yw'n derbyn twndl a wrthodwyd; mae gwall yn methu'r cais.

Mae X-Proxy-Region yn enghraifft a ddiffinnir gan y darparwr. Darllenwch statws a phenawdau yma a gadewch berchnogaeth y corff a'r soced gyda Transport, sy'n trin TLS y cyrchfan wedyn.

Mae hyn yn arsylwi sefydlu twndl newydd, nid pob cais. Nid oes gan gysylltiad a ailddefnyddiwyd unrhyw ymateb CONNECT newydd, ac mae gan ymateb y wefan benawdau ar wahân.

Erthyglau cysylltiedig