mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-16 05:16:35 +08:00
bindBody issue
This commit is contained in:
parent
2c9e5fe47a
commit
69e1831a5d
@ -7,6 +7,7 @@ package binding
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
const defaultMemory = 32 << 20
|
||||
@ -32,6 +33,17 @@ func (formBinding) Bind(req *http.Request, obj any) error {
|
||||
return validate(obj)
|
||||
}
|
||||
|
||||
func (formBinding) BindBody(body []byte, obj any) error {
|
||||
form, err := url.ParseQuery(string(body))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := mapForm(obj, form); err != nil {
|
||||
return err
|
||||
}
|
||||
return validate(obj)
|
||||
}
|
||||
|
||||
func (formPostBinding) Name() string {
|
||||
return "form-urlencoded"
|
||||
}
|
||||
@ -46,6 +58,17 @@ func (formPostBinding) Bind(req *http.Request, obj any) error {
|
||||
return validate(obj)
|
||||
}
|
||||
|
||||
func (formPostBinding) BindBody(body []byte, obj any) error {
|
||||
form, err := url.ParseQuery(string(body))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := mapForm(obj, form); err != nil {
|
||||
return err
|
||||
}
|
||||
return validate(obj)
|
||||
}
|
||||
|
||||
func (formMultipartBinding) Name() string {
|
||||
return "multipart/form-data"
|
||||
}
|
||||
@ -60,3 +83,14 @@ func (formMultipartBinding) Bind(req *http.Request, obj any) error {
|
||||
|
||||
return validate(obj)
|
||||
}
|
||||
|
||||
func (formMultipartBinding) BindBody(body []byte, obj any) error {
|
||||
form, err := url.ParseQuery(string(body))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := mapForm(obj, form); err != nil {
|
||||
return err
|
||||
}
|
||||
return validate(obj)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user