正常读取字节流(直接读空)
func ReadData(c *gin.Context) {
// 这样读取字节流之后,整个c.request.body就已经读空啦。再次无法读到数据。
data, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
log.Fatalln(err)
}
fmt.Println(string(data))
// 再次读取
data, _ = ioutil.ReadAll(c.Request.Body)
fmt.Println(string(data)) // 无数据
}
复制字节流
func ReadData(c *gin.Context) {
// 这样读取字节流之后,整个c.request.body就已经读空啦。再次无法读到数据。
data, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
log.Fatalln(err)
}
fmt.Println(string(data))
// 再次读取数据(复制字节流)
c.Request.Body = ioutil.NopCloser(bytes.NewReader(data))
data, _ = ioutil.ReadAll(c.Request.Body)
fmt.Println(string(data)) // 有数据
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。