2 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
不要使用劫持,因?yàn)橐坏┙俪郑琀TTP服務(wù)器庫不會(huì)對(duì)連接做任何其他事情,所以不能重用。
我改變方式,復(fù)制Header和Body,看起來像反向代理(http://golang.org/src/pkg/net/http/httputil/reverseproxy.go),是有效的。
例子:
func copyHeader(dst, src http.Header) {
for k, w := range src {
for _, v := range w {
dst.Add(k, v)
}
}
}
func copyResponse(r *http.Response, w http.ResponseWriter) {
copyHeader(w.Header(), r.Header)
w.WriteHeader(r.StatusCode)
io.Copy(w, r.Body)
}
func handler(w http.ResponseWriter, r *http.Response) {
resp, err := http.Get("http://www.example.com")
if err != nil {
// handle error
}
copyResponse(resp, w)
}
- 2 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報(bào)