go--gin--body只能读取一次问题

想在路由侧再封装一个方法;
发现处理完后 想把ctx传递给下一个函数 无论如何都读取不了ctx里的值
深拷贝ctx也不行

解决

参考了以下文章解决
https://segmentfault.com/a/1190000039979934

原因

ctx.Request.Body的读取, 类似文件读取一样, 读取数据时, 指针会对应移动至EOF, 所以下次读取的时候, seek指针还在EOF处

解决思路

回写 ctx.Request.Body 读取完数据时, 回写 ctx.Request.Body ctx.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))

你可能感兴趣的:(go--gin--body只能读取一次问题)