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()
}