Gin 参数获取
- 1、获取url 参数
- 2、获取动态 url 参数
- 3、获取 form 表单数据
1、获取url 参数
- Query()
- GetQuery()
- QueryMap()
- DefaultQuery()
package mainimport ("fmt""github.com/gin-gonic/gin""net/http"
)func _query(c *gin.Context) {// 1、/query?user=123 获取参数//query := c.Query("user")//fmt.Println(query)// 2、/query?user=123 获取参数 如果参数有值即使为空,flag 也为true, 只有当参数没有 即 /query? flag 为 false//query, flag := c.GetQuery("user")//c.JSON(http.StatusOK, gin.H{"query": query, "flag": flag})//fmt.Println(flag)// 3、拿到多个相同的值//query := c.QueryArray("user")//fmt.Println(query)//c.JSON(http.StatusOK, query)// 4、query := c.QueryMap("user")fmt.Println(query)c.JSON(http.StatusOK, query)
}func main() {router := gin.Default()router.GET("/query", _query)router.Run("0.0.0.0:9000")
}
2、获取动态 url 参数
- c.Params()
package mainimport ("fmt""github.com/gin-gonic/gin""net/http"
)func _params(c *gin.Context) {id := c.Param("id")fmt.Println(id)c.JSON(http.StatusOK, gin.H{"id": id})
}func _paramsId(c *gin.Context) {id := c.Param("id")key := c.Param("key")c.JSON(http.StatusOK, gin.H{"id": id, "key": key})fmt.Println(id)fmt.Println(key)
}func main() {router := gin.Default()router.GET("/params/:id", _params)router.GET("/params/:id/:key", _paramsId)router.Run(":9000")
}
3、获取 form 表单数据
- PostForm()
- PostFormArray()
- MultipartForm()
- DefaultPostForm()
- GetRawData()
package mainimport ("fmt""github.com/gin-gonic/gin"
)func _postForm(c *gin.Context) {//name := c.PostForm("name")//age := c.PostForm("age")//fmt.Println("name")//fmt.Println("age")//c.JSON(http.StatusOK, gin.H{"name": name, "age": age})//name := c.PostFormArray("name")//age := c.PostFormArray("age")//ids := c.PostFormArray("ids") 如果用户没有传,则直接使用默认值,如果传了 就使用 用户传的//gender := c.DefaultPostForm("gender", "男")//form, err := c.MultipartForm()//if err != nil {// c.JSON(http.StatusOK, gin.H{"message": "获取参数失败"})// return//}//fmt.Println(form)//c.JSON(http.StatusOK, form)//fmt.Println(ids)//c.JSON(http.StatusOK, gin.H{"name": name, "age": age, "ids": ids, "gender": gender})fmt.Println(c.GetRawData())
}func main() {router := gin.Default()router.POST("/postForm", _postForm)router.Run(":9000")
}// 1、获取 query 参数
// - Query()
// - QueryArray()
// - QueryMap()
// - GetQuery()// 2、获取 动态 参数
// - Param()// 3、获取 表单 参数
// - PostForm()
// - PostFormArray()
// - DefaultPostForm()
// - MultipartForm()// 4、获取 原始参数
// - getRawData()