gin参数获取
2019-10-16 本文已影响0人
寒云暮雨
gin如何获得前端的童鞋的参数呢
/*
@Author : 寒云
@Email : 1355081829@qq.com
@Time : 2019/10/15 11:51
*/
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.POST("/post", func(c *gin.Context) {
id := c.Query("id")
name := c.PostForm("name")
c.JSON(http.StatusOK, gin.H{"id": id, "name": name})
})
_ = r.Run(":8089")
}
用postman模拟请求
image.png
在这个例子中我们有get参数和post参数
1、get参数
id := c.Query("id")
在这里我们获得了地址http://127.0.0.1:8089/post?id=1中的id参数
2、post参数
name := c.PostForm("name")
在这里我们获得了form表单中的post参数
3、get参数默认值
id := c.DefaultQuery("id", "0")
4、post参数默认值
name := c.DefaultPostForm("name", "hanyun")
5、GetQueryArray接收数组参数
r.GET("/array", func(c *gin.Context) {
if idList, err := c.GetQueryArray("idList"); err {
fmt.Println(err)
fmt.Println(idList[0])
c.JSON(http.StatusOK, gin.H{"dataList": idList})
} else {
c.JSON(http.StatusOK, gin.H{"dataList": []string{}})
}
})
我们的请求地址http://127.0.0.1:8089/array?idList=1&idList=2&idList=3,用postman模拟测试
6、QueryArray接收数组参数
r.GET("/QueryArray", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"dataList": c.QueryArray("idList")})
})
请求地址http://127.0.0.1:8089/QueryArray?idList=1&idList=2&idList=3我们得到的结果和GetQueryArray的数据一样
7、QueryMap接收参数
r.POST("/QueryMap", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"dataList": c.QueryMap("idList")})
})
请求地址http://127.0.0.1:8089/QueryMap?idList[name]=hanyun&idList[password]=21212121,用postman模拟
8、PostFormMap接收参数
r.POST("/PostFormMap", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"dataList": c.PostFormMap("idList")})
})
请求地址http://127.0.0.1:8089/PostFormMap,用postman模拟测试
9、PostFormArray接收参数
r.POST("/PostFormArray", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"dataList": c.PostFormArray("idList")})
})
请求地址http://127.0.0.1:8089/PostFormArray,用postman模拟测试
10、Param获得参数
r.GET("/param/:name", func(c *gin.Context) {
name := c.Param("name")
c.JSON(http.StatusOK, gin.H{"dataList": name})
})
请求地址http://127.0.0.1:8089/param/hanyun,用postman模拟请求