HTTP 요청 처리는 웹 개발을 할 때 매우 일반적인 작업입니다. Go 언어 개발자에게 Gin 프레임워크는 매우 인기 있는 선택입니다. 그러나 특정 처리를 수행하기 위해 요청 본문을 여러 번 읽어야 하는 경우도 있습니다. 그렇다면 Go-Gin에서 요청 본문을 여러 번 읽는 방법은 무엇입니까? 이 기사에서 PHP 편집자인 Xiaoxin은 개발자가 이러한 요구에 더 잘 대처할 수 있도록 이 문제에 대한 솔루션을 자세히 소개합니다.
데이터 검증을 수행한 후 데이터의 컨텍스트를 복원하려고 합니다. 다음 기능에서 필요에 따라 계속 이동하려면 데이터가 필요합니다.
저는 golang을 처음 접했고 아래 코드를 사용하면 됩니다. 어떤 도움과 더 나은 방법이라도 대단히 감사하겠습니다.
미리 감사드립니다.
인증 미들웨어
으아악경로
func SignupValidator(c *gin.Context) { // Read the Body content // var bodyBytes []byte // if c.Request.Body != nil { // bodyBytes, _ = ioutil.ReadAll(c.Request.Body) // } var user entity.User if err := c.ShouldBindJSON(&user); err != nil { validate := validator.New() if err := validate.Struct(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) c.Abort() return } // c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) } // Read the Body content var bodyBytes []byte if c.Request.Body != nil { bodyBytes, _ = ioutil.ReadAll(c.Request.Body) } fmt.Println(string(bodyBytes)) // this empty c.Next() }
다음은 ShouldBindBodyWith
을 사용하여 본문을 두 번 읽는 예입니다. 확인해 보세요.
출력:
으아악위 내용은 Go-Gin은 요청 본문을 여러 번 읽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!