这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
1: 获取querystring参数
querystring 指的是URL中 ? 后面携带的参数,例如:/user/search?username=小王子&address=沙河。获取请求的querystring参数的方法如下:
func main() {
//Default返回一个默认的路由引擎
r := gin.Default()
r.GET("/user/search", func(c *gin.Context) {
// 可以添加默认值
username := c.DefaultQuery("username", "小王子")
//username := c.Query("username")
address := c.Query("address")
//输出json结果给调用方
c.JSON(http.StatusOK, gin.H{
"message": "ok",
"username": username,
"address": address,
})
})
r.Run()
}
我们输入对应的URL,就能获取到对应的参数了
http://localhost:8080/web?username=小王子&address=沙河
2: 获取form参数
请求的数据通过form表单来提交,例如向 /user/search 发送一个POST请求,获取请求数据的方式如下:
[!note]+ postman 如何提交表单
func main() {
//Default返回一个默认的路由引擎
r := gin.Default()
r.POST("/user/search", func(c *gin.Context) {
// DefaultPostForm取不到值时会返回指定的默认值
//username := c.DefaultPostForm("username", "小王子")
username := c.PostForm("username")
address := c.PostForm("address")
//输出json结果给调用方
c.JSON(http.StatusOK, gin.H{
"message": "ok",
"username": username,
"address": address,
})
})
r.Run(":8080")
}
127.0.0.1:8080/user/search?username=小王子&address=沙河
3: 获取path参数
请求的参数通过URL路径传递,例如:/user/search/小王子/沙河。获取请求URL路径中的参数的方式如下。
func main() {
//Default返回一个默认的路由引擎
r := gin.Default()
//💡带有":" 可以检测到
r.GET("/user/search/:username/:address", func(c *gin.Context) {
username := c.Param("username")
address := c.Param("address")
//输出json结果给调用方
c.JSON(http.StatusOK, gin.H{
"message": "ok",
"username": username,
"address": address,
})
})
r.Run(":8080")
}
127.0.0.1:8080/user/search/小王子/沙河
[!note]+ 结果无序是正常的, 七米演示的也是无序的