我正在通过 HTTP 代理使用默认的“net/http”Golang 库执行一个简单的 HTTP GET 请求,并想读取第一个代理回复的内容(对于使用 CONNECT 方法的 HTTP 客户端请求)。在纯文本中,它看起来像

HTTP/1.1 200 OK
Request-Uid: <some id>
<another header>: <another value>

高朗代码:

...
proxyUrlParsed, errUrl := url.Parse(proxyUrl)
tr := &http.Transport{
   Proxy:   http.ProxyURL(proxyUrlParsed),
}
client := &http.Client{
   Transport: tr,
}
request, errReq := http.NewRequest("GET", targetUrl, nil)
response, errDo := client.Do(request)
// Response contains HTTP headers from the reply from the target resource but not the intermediate proxy.

我使用 DialContext 部分解决了它,但我需要实现协议的某些部分,我发现这些部分对于以后的支持来说不太方便且成本高昂。那么有没有一种简单而聪明的方法呢?