Gin 学习笔记02-参数获取

Gin 参数获取

  • 1、获取url 参数
  • 2、获取动态 url 参数
  • 3、获取 form 表单数据

1、获取url 参数

  • Query()
  • GetQuery()
  • QueryMap()
  • DefaultQuery()
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func _query(c *gin.Context) {
	// 1、/query?user=123  获取参数
	//query := c.Query("user")
	//fmt.Println(query)

	// 2、/query?user=123 获取参数 如果参数有值即使为空,flag 也为true, 只有当参数没有 即 /query? flag 为 false
	//query, flag := c.GetQuery("user")
	//c.JSON(http.StatusOK, gin.H{"query": query, "flag": flag})
	//fmt.Println(flag)

	// 3、拿到多个相同的值
	//query := c.QueryArray("user")
	//fmt.Println(query)
	//c.JSON(http.StatusOK, query)

	// 4、
	query := c.QueryMap("user")
	fmt.Println(query)
	c.JSON(http.StatusOK, query)
}

func main() {
	router := gin.Default()

	router.GET("/query", _query)

	router.Run("0.0.0.0:9000")
}

2、获取动态 url 参数

  • c.Params()
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func _params(c *gin.Context) {
	id := c.Param("id")
	fmt.Println(id)
	c.JSON(http.StatusOK, gin.H{"id": id})
}

func _paramsId(c *gin.Context) {
	id := c.Param("id")
	key := c.Param("key")
	c.JSON(http.StatusOK, gin.H{"id": id, "key": key})
	fmt.Println(id)
	fmt.Println(key)
}

func main() {
	router := gin.Default()

	router.GET("/params/:id", _params)

	router.GET("/params/:id/:key", _paramsId)

	router.Run(":9000")
}

3、获取 form 表单数据

  • PostForm()
  • PostFormArray()
  • MultipartForm()
  • DefaultPostForm()
  • GetRawData()
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

func _postForm(c *gin.Context) {
	//name := c.PostForm("name")
	//age := c.PostForm("age")
	//fmt.Println("name")
	//fmt.Println("age")
	//c.JSON(http.StatusOK, gin.H{"name": name, "age": age})

	//name := c.PostFormArray("name")
	//age := c.PostFormArray("age")
	//ids := c.PostFormArray("ids")
	 如果用户没有传,则直接使用默认值,如果传了 就使用 用户传的
	//gender := c.DefaultPostForm("gender", "男")
	
	//form, err := c.MultipartForm()
	//if err != nil {
	//	c.JSON(http.StatusOK, gin.H{"message": "获取参数失败"})
	//	return
	//}
	//fmt.Println(form)
	//c.JSON(http.StatusOK, form)
	//fmt.Println(ids)
	//c.JSON(http.StatusOK, gin.H{"name": name, "age": age, "ids": ids, "gender": gender})

	fmt.Println(c.GetRawData())
}

func main() {
	router := gin.Default()

	router.POST("/postForm", _postForm)

	router.Run(":9000")
}

// 1、获取 query 参数
// - Query()
// - QueryArray()
// - QueryMap()
// - GetQuery()

// 2、获取 动态 参数
// - Param()

// 3、获取 表单 参数
// - PostForm()
// - PostFormArray()
// - DefaultPostForm()
// - MultipartForm()

// 4、获取 原始参数
// - getRawData()

你可能感兴趣的:(gin,学习,笔记)