mirror of
https://github.com/gin-gonic/gin.git
synced 2025-05-01 15:18:53 +08:00
a temporary fix for issue 4120
This commit is contained in:
parent
e46bd52185
commit
67d4ff8f6e
17
context.go
17
context.go
@ -5,7 +5,9 @@
|
||||
package gin
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/fs"
|
||||
"log"
|
||||
@ -722,6 +724,21 @@ func (c *Context) Bind(obj any) error {
|
||||
|
||||
// BindJSON is a shortcut for c.MustBindWith(obj, binding.JSON).
|
||||
func (c *Context) BindJSON(obj any) error {
|
||||
|
||||
body, err := io.ReadAll(c.Request.Body)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read body: %v", err)
|
||||
}
|
||||
|
||||
// If the body is empty, set it to {}
|
||||
if len(body) == 0 {
|
||||
body = []byte("{}")
|
||||
c.Request.Body = io.NopCloser(bytes.NewBuffer(body)) // Set to {} to trigger the error
|
||||
return c.MustBindWith(obj, binding.JSON)
|
||||
}
|
||||
|
||||
// Restore the body since it was read
|
||||
c.Request.Body = io.NopCloser(bytes.NewBuffer(body))
|
||||
return c.MustBindWith(obj, binding.JSON)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user