栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Golang:如何读取ReverseProxy的响应主体?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang:如何读取ReverseProxy的响应主体?

httputil.ReverseProxy
有一个
Transport
领域。您可以使用它来修改响应。例如:

type transport struct {    http.RoundTripper}func (t *transport) RoundTrip(req *http.Request) (resp *http.Response, err error) {    resp, err = t.RoundTripper.RoundTrip(req)    if err != nil {        return nil, err    }    b, err := ioutil.ReadAll(resp.Body)    if err != nil {        return nil, err    }    err = resp.Body.Close()    if err != nil {        return nil, err    }    b = bytes.Replace(b, []byte("server"), []byte("schmerver"), -1)    body := ioutil.NopCloser(bytes.NewReader(b))    resp.Body = body    resp.ContentLength = int64(len(b))    resp.Header.Set("Content-Length", strconv.Itoa(len(b)))    return resp, nil}// ...proxy := httputil.NewSingleHostReverseProxy(target)proxy.Transport = &transport{http.DefaultTransport}

整个场景的操场示例:http :
//play.golang.org/p/b0S5CbCMrI。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号