gin获取参数的各种方法
一、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中参数