Go-Gin은 요청 본문을 여러 번 읽습니다.

PHPz
풀어 주다: 2024-02-09 09:24:18
앞으로
1247명이 탐색했습니다.

Go-Gin 多次读取请求正文

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!