ShouldBindJSON方法是最常用解析JSON数据的方法之一,但在重复调用的情况下会出现EOF的报错,这个原因出在ShouldBindJSON在调用过一次之后context.request.body.sawEOF的值是false导致,所以如果要多次绑定多个变量,需要使用ShouldBindBodyWith。
为什么第二次使用ShouldBindJSON就失效了呢?
今天debug看了下,主要是 http.Request的io buffer第一次取完之后,http.body 结构体中的sawEOF=true
第二次去读取,发现已经是true了。直接返回了err = io.EOF.
参考链接:
https://blog.csdn.net/bingo199/article/details/115281665
https://blog.csdn.net/yes169yes123/article/details/106204252