e.g. http://127.0.0.1:8080/user/hallen
1.第一种情况:使用占位符: ,必须得指定这个路径
路由:engine.GET("/user/:name",Index)如:http://127.0.0.1:8080/user/hallen,这里必须指定name这个路径,不然会找不到获取方式:context.Param(“name”)2.第二种情况:使用占位符*,可以不用匹配这个路径
路由:engine.GET("/user/*name",Index)这里可以指定name这个路径,也可以不用指定如:下面两种都可以访问 http://127.0.0.1:8080/user/hallen,http://127.0.0.1:8080/user, 获取方式:context.Param(“name”)区别:参数前面是使用冒号还是使用通配符,冒号的比如指定路径,通配符的可以不用
代码示例:
func Index(c *gin.Context) {
name := c.Param("name")
c.String(http.StatusOK, "Hello %s", name)
}
// engine.GET("/user/*name",Index)
engine.GET("/user/:name",Index)
二、带参数的路由:路径中使用参数名
1.contxt.Query
传参:http://127.0.0.1:8080/user/?name=hallen获取:contxt.Query(“name”)2.contxt.DefaultQuery
传参:http://127.0.0.1:8080/user/?name=hallen获取:contxt.DefaultQuery(“name”,“hallen”)区别:DefaultQuery比Query多了个默认值,如果没有获取到会使用默认值
3.contxt.QueryArray
传参:http://127.0.0.1:8080/user?name=1,2,3,4,5获取:names := contxt.QueryArray(“name”)数据结构:[1,2,3,4,5]4.contxt.QueryMap
传参:[http://127.0.0.1:8080/user?name1]=hallen1&name[2]=hallen2获取:name_map := contxt.QueryMap(“name”)数据结构:map[1:hallen1 2:hallen2]欢迎分享,转载请注明来源:内存溢出
评论列表(0条)