为什么发布请求在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,
   })
})