我如何获得发送的正文?使用杜松子酒

How do I get the body that was sent? Using gin gonic

如何获取发送的正文?

package main

import (
  "fmt"
  "github.com/gin-gonic/gin"
)
func main()  {
  fmt.Println("Hello, world!")
  r := gin.Default()
  r.POST("/", func(c *gin.Context) {
    body := c.Request.Body
    c.JSON(200,body);
  })
  r.Run(":8080");
}

我通过邮递员请求

  {
         "email": "test@gmail.com",
         "password": "test"
    }

作为回应,我得到空 json {} 怎么办?

您可以按如下方式绑定传入请求json:

package main

import (
    "github.com/gin-gonic/gin"
)

type LoginReq struct {
    Email    string
    Password string
}

func main() {
    r := gin.Default()

    r.POST("/", func(c *gin.Context) {
        var req LoginReq
        c.BindJSON(&req)
        c.JSON(200, req)
    })
    r.Run(":8080")
}

请记住,如果存在绑定错误,此方法会给出 400。如果您想自己处理错误,请尝试 ShouldBindJSON 如果有错误 returns 或 nil.