gin获取参数的各种方法

作者: adm 分类: go 发布时间: 2021-11-23

一、header解析

g.GetHeader("token")
g.Request.Header.Get("token")
h := HeaderParam{}?
g.ShouldBindHeader(&h)? ? ? ? ? ?//使用结构体可以解析,map无效

二、url中的参数解析

如:http://192.168.11.11:9090?test=测试
g.DefaultQuery("test","")
g.Query("test")
g.Request.URL.Query().Get("test")
//获取所有参数
c.Request.URL.RawQuery
//打印结果
m=api&c=test

三、form-data解析

//text类型参数
formP,ok := g.GetPostForm("test")
formP := g.DefaultPostForm("test","")
formP :=g.Request.PostForm.Get("test")
name := c.PostForm("name") //从表单中查询参数

//POST和PUT主体参数优先于URL查询字符串值。
name := c.Request.FormValue("name") 

//file类型
file,err := r.FormFile("file")? ? //单个
//多个formData解析
formDatas,err := r.MultipartForm()
if err !=nil && formDatas !=nil {
files := formDatas.File["files"]
textParams := formDatas.Value["params"]
}

四、json数据解析
数据解析,同一个参数,只可调用一次,不然会EOF

1、定义结构体解析
uploadInfo :=model.UploadInfo{}
err := c.ShouldBindJSON(&uploadInfo)
2、可用map解析出来后再遍历
uploadInfo?:= make(map[string]interface{})
err := c.ShouldBindJSON(&uploadInfo)

五、获取地址参数

router.POST("/post/:uuid", func(c *gin.Context){
...
}
获取uuid
uuid := c.Param("uuid") //取得URL中参数

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!