当前位置:  开发笔记 > 编程语言 > 正文

golang如何复用http.request.body

下面由golang教程栏目给大家介绍golang复用http.request.body的方法实例,希望对需要的朋友有所帮助!业务当中有需要分发http.request.body的场景。比如微信回调消息只能指定一个地址,所以期望可...
下面由golang教程栏目给大家介绍golang复用http.request.body的方法实例,希望对需要的朋友有所帮助!

其中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的详细内容,更多请关注其它相关文章!

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有