(1) 获取查询参数
- context.Query()
context.DefaultQuery()
engine.GET("/hello", func(context *gin.Context) {fmt.Println(context.FullPath())username := context.Query("name")fmt.Println(username)context.Writer.Write([]byte("Hello," + username))})
(2) 获取路径参数
context.Param()
engine.DELETE("/user/:id", DeleteHandle)func DeleteHandle(context *gin.Context) {fmt.Println(context.FullPath())userID := context.Param("id")fmt.Println(userID)context.Writer.Write([]byte("Delete user's id : " + userID))}
(3) 获取Form参数
engine.POST("/user/search", func(c *gin.Context) {// DefaultPostForm取不到值时会返回指定的默认值//username := c.DefaultPostForm("username", "小王子")username := c.PostForm("username")address := c.PostForm("address")//输出json结果给调用方c.JSON(http.StatusOK, gin.H{"message": "ok","username": username,"address": address,})})
(4) 获取Json参数
enginer.POST("/json", func(c *gin.Context) {// 注意:下面为了举例子方便,暂时忽略了错误处理b, _ := c.GetRawData() // 从c.Request.Body读取请求数据// 定义map或结构体var m map[string]interface{}// 反序列化_ = json.Unmarshal(b, &m)c.JSON(http.StatusOK, m)})
(5) 获取Header
// 验证token的中间件func Auth(c *gin.Context) {tokenHeader := c.Request.Header["token"]if len(tokenHeader) == 0 {c.Abort()}tokenString := tokenHeader[0]if GetTokenUid(tokenString) == 0 {c.Abort()}c.Next() // 认证通过, 调用后续的处理函数}
