gin实例--获取参数(4)

1,583 阅读1分钟

源码

github.com/zsl10/gin-e…

获取参数

  • 路由参数
engine.GET("/test/:number", func(context *gin.Context) {
	// 使用 context.Param(key) 获取 url 参数
	number := context.Param("number")
	context.String(http.StatusOK, "number=%s", number)
})
  • URL参数
engine.GET("/test", func(context *gin.Context) {
	//若name字段为空,设置默认值为Guest
	name := context.DefaultQuery("name", "Guest")
	context.String(http.StatusOK, "name=%s", name)
})
  • 表单参数
engine.POST("/test", func(context *gin.Context) {
	name := context.DefaultPostForm("name", "Guest")
	age := context.PostForm("age")
	context.String(http.StatusOK, "name=%s age=%s", name, age)
})
  • 获取json数据
engine.POST("/add", func(context *gin.Context) {
	// 获取原始字节
	rawData, err := context.GetRawData()
	if err != nil {
		log.Fatalln(err)
	}
	strData := string(rawData)
	context.String(http.StatusOK, "query data=%s", strData)
})
  • 上传文件
engine.POST("/upload", func(context *gin.Context) {
	file, _ := context.FormFile("file")
	context.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
})