golang-gin框架参数解析

Python012

golang-gin框架参数解析,第1张

g.GetHeader("token")

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)

上面是从源码复制得出。

Form属性包含了post表单和url后面跟的get参数。

PostForm属性只包含了post表单参数。

实践数据如下:

打印请求头:

打印Form和PostForm

客户端打印: