简体   繁体   中英

Why is the post request not working in gin golang?

This code does not work, the response will be empty, like this {"test":""} .

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

            router.POST("/test", f

unc(c *gin.Context) {
            test := c.Query("test")
            c.JSON(200, gin.H{
                "test": test,
            })
        })
        router.Run()
    }

UPDATED: I found the simple solution via struct:

func test(c *gin.Context) {
    test := struct {
        Test   string `json:"test"`
        Test2 string `json:"test2"`
    }{}
    c.BindJSON(&test)

    c.JSON(200, gin.H{
        "test1":  test.Test,
        "test2": test.Test2,
    })
}
func test(c *gin.Context) {
    test := struct {
        Test   string `json:"test"`
        Test2 string `json:"test2"`
    }{}
    c.BindJSON(&test)

    c.JSON(200, gin.H{
        "test1":  test.Test,
        "test2": test.Test2,
    })
}

You are sending the data as body, you should bind the body to a variable to have access to it.

type Data struct {
   test string
}
// ...

router.POST("/test", func(c *gin.Context) {
   var data Data        
   c.BindJSON(&data)

   c.JSON(200, gin.H{ 
      "test": data.test,
   })
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM