【问题标题】:How do I get the body that was sent? Using gin gonic我如何获得发送的尸体?使用杜松子酒
【发布时间】:2021-08-13 03:34:37
【问题描述】:

如何获取发送的正文?

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 {} 怎么办?

【问题讨论】:

  • Request.Body 是一个io.Reader。它没有公共字段,所以json 没有任何东西可以编码。

标签: go go-gin


【解决方案1】:

可以如下绑定传入的请求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,它会返回错误(如果有)或nil

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多