Gin请求参数

60 阅读1分钟

Get请求参数

使用c.Query("key")、或者 c.DefaultQuery("key")方法

package main

import "github.com/gin-gonic/gin"

func TestQueryString(c *gin.Context) {
	username := c.Query("username")
        //默认值为www.duoke360.com
	site := c.DefaultQuery("site", "www.duoke360.com")

	c.String(200, "username:%s, site:%s", username, site)
}

func main() {

	e := gin.Default()
	// url : http://localhost:8080/testQueryString?username=郭宏志&site=多课网
	e.GET("/testQueryString", TestQueryString)

	e.Run()

}

Post参数

使用c.PostForm("key")、或者 c.DefaultPostForm("key")方法

func DoLogin(c *gin.Context) {
	username := c.PostForm("username")
	password := c.DefaultPostForm("password", "123")

	c.HTML(200, "welcome.html", gin.H{
		"username": username,
		"password": password,
	})
}

路径参数(restful风格)

使用c.Param("key")方法

package main

import "github.com/gin-gonic/gin"

func TestPathParam(c *gin.Context) {
	s := c.Param("username")
	c.String(200, "Username:%s", s)
	// 输出:Username:ghz
}

func main() {
	e := gin.Default()
	// http://localhost:8080/hello/ghz
	e.GET("/hello/:username", TestPathParam)
	e.Run()
}

既有Get也有Post

package main

import "github.com/gin-gonic/gin"

func TestGetAndPost(c *gin.Context) {
	page := c.DefaultQuery("page", "0")
	key := c.PostForm("key")
	c.String(200, "Page:%s, Key:%s", page, key)
}

func main() {
	e := gin.Default()
	// http://localhost:8080/query?page=1
	e.POST("/query", TestGetAndPost)
	e.Run()
}