Gin框架参数多次绑定
一、 使用ShouldBindBodyWith解决
- var l loginReq
- if err := c.ShouldBindBodyWith(&l, binding.JSON); err != nil {
- fmt.Println("err: ", err)
- c.Abort()
- }
- var l2 loginReq
- if err := c.ShouldBindBodyWith(&l2, binding.JSON); err != nil {
- fmt.Println("err: ", err)
- c.Abort()
- }
二、 转存Body
- // 先把body取出来
- data, err := c.GetRawData()
- if err != nil {
- fmt.Println("read body failed, error: ", err)
- }
-
- // bind之前把body写回去
- c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
- var l loginReq
- if err := c.ShouldBind(&l); err != nil {
- fmt.Println("err: ", err)
- c.Abort()
- }
-
- // bind之后把body写回去
- c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
三 不用影响后续使用的方法
版权声明:
作者:超级管理员
链接:
https://blog.apecloud.ltd/article/detail.html?id=gin-shoud-bind
来源:猿码云个人技术站
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
打赏


共有0条评论