g.Request.Header.Get("token")
h := HeaderParam{}
g.ShouldBindHeader(&h) //使用结构体可以解析,map无效
如:http://192.168.11.11:9090?test=测试
g.DefaultQuery("test","")
g.Query("test")
g.Request.URL.Query().Get("test")
//text类型参数
formP,ok := g.GetPostForm("test")
formP := g.DefaultPostForm("test","")
formP :=g.Request.PostForm.Get("test")
//file类型
file,err := r.FormFile("file") //单个
//多个formData解析
formDatas,err := r.MultipartForm()
if err !=nil &&formDatas !=nil {
files := formDatas.File["files"]
textParams := formDatas.Value["params"]
}
数据解析,同一个参数,只可调用一次,不然会EOF
1、定义结构体解析
uploadInfo :=model.UploadInfo{}
err := c.ShouldBindJSON(&uploadInfo)
2、可用map解析出来后再遍历
uploadInfo := make(map[string]interface{})
err := c.ShouldBindJSON(&uploadInfo)
上面是从源码复制得出。
PostForm属性只包含了post表单参数。
实践数据如下:
打印请求头:
打印Form和PostForm
客户端打印: