一般情况使用
c.ShouldBindJSON
c.ShouldBind
第二次读取 request body 的数据就会出现 EOF 的错误,因为 c.Request.Body 不可以重用
gin 1.4 之后官方提供了一个 ShouldBindBodyWith 的方法,可以支持重复绑定,原理就是将 body 的数据缓存了下来,但是二次取数据的时候还是得用 ShouldBindBodyWith 才行,直接用 ShouldBind 还是会报错的。
注意
不是c.ShouldBindWith
_=c.ShouldBindBodyWith(&role,binding.JSON)
_=c.ShouldBindBodyWith(&admin,binding.JSON)