Gin 学习笔记02-参数获取
Gin 参数获取
- 1、获取url 参数
- 2、获取动态 url 参数
- 3、获取 form 表单数据
1、获取url 参数
- Query()
- GetQuery()
- QueryMap()
- DefaultQuery()
package main
import (
"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 main
import (
"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 main
import (
"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()