其中c表示的是http的上下文
// 把request的内容读取出来 var bodyBytes []byte if c.Request.Body != nil { bodyBytes, _ = ioutil.ReadAll(c.Request.Body) } // 把刚刚读出来的再写进去 c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes))
1.我们先将body从http.request里面读取出来,保存到一个变量里面。
2.然后再将变量里面的数据使用ioutil.NopCloser方法写回到http.request里面。
https://golang.org/pkg/io/ioutil/#NopCloser NopCloser returns a ReadCloser with a no-op Close method wrapping the provided Reader r.
NopCloser用一个无操作的Close方法包装Reader r返回一个ReadCloser接口。
这样我们就可以再次使用c.request来进行处理了。
以上就是golang如何复用http.request.body的详细内容,更多请关注其它相关文章!