我想在 golang 中编写一个 HTTP 代理。我将此模块用于代理:https : //github.com/elazarl/goproxy。当有人使用我的代理时,它会调用一个以 http.Response 作为输入的函数。我们称之为“resp”。resp.Body 是一个 io.ReadCloser。我可以使用它的 Read 方法将它读入 []byte 数组。但是随后它的内容从 resp.Body 中消失了。但是我必须返回一个 http.Response 和我读入 []byte 数组的 Body。我怎样才能做到这一点?
你好,
最大限度
我的代码:
proxy.OnResponse().DoFunc(func(resp *http.Response, ctx *goproxy.ProxyCtx) *http.Response {
body := resp.Body
var readBody []byte
nread, readerr := body.Read(readBody)
//the body is now empty
//and i have to return a body
//with the contents i read.
//how can i do that?
//doing return resp gives a Response with an empty body
}
慕田峪9158850
浮云间
相关分类