package bind import ( "dy-admin/pkg/log" "dy-admin/pkg/rescode" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" ) func Bind(c *gin.Context, d interface{}, bindings ...binding.Binding) error { var err error if len(bindings) == 0 { bindings = constructor.GetBindingForGin(d) } for i := range bindings { if bindings[i] == nil { err = c.ShouldBindUri(d) } else { err = c.ShouldBindWith(d, bindings[i]) } if err != nil && err.Error() == "EOF" { log.Warn("request body is not present anymore. ") err = nil continue } if err != nil { break } } if err != nil { err = rescode.RegisterErrorWithCause(err, rescode.NewErrCode(rescode.HttpCode400, 990000, "解析body参数错误", "")) } return err }