如下所示,简单做个代理
func main() { remote, _ := url.Parse("http://www.xxxx.com") proxy := httputil.NewSingleHostReverseProxy(remote) log.Fatal( http.ListenAndServe(":9999", proxy)) } 我想把代理后返回的一些内容替换掉.但是怎么都成功不了. 下面这样怎么没反映? go 的 http 太"精髓"了.才学几天,摸不着门道. 哪位同学能指个路吗?谢谢.
func (t *transport) RoundTrip(req *http.Request) (res *http.Response, err error) { res, err = t.RoundTripper.RoundTrip(req) b, err := ioutil.ReadAll(res.Body) if err != nil { return nil, err } defer res.Body.Close() b = bytes.Replace(b, []byte("Keywords"), []byte("xxxxxxxx"), -1) body := ioutil.NopCloser(bytes.NewReader(b)) res.Body = body res.COntentLength= int64(len(b)) res.Header.Set("Content-Length", strconv.Itoa(len(b))) return res, nil } 