1. 获取get参数

  1. func main() {
  2. router := gin.Default()
  3. // 匹配的url格式: /welcome?firstname=Jane&lastname=Doe
  4. router.GET("/welcome", func(c *gin.Context) {
  5. firstname := c.DefaultQuery("firstname", "Guest")
  6. lastname := c.Query("lastname") // 是 c.Request.URL.Query().Get("lastname") 的简写
  7. c.String(http.StatusOK, "Hello %s %s", firstname, lastname)
  8. })
  9. router.Run(":8080")
  10. }

2. 获取post参数

  1. func main() {
  2. router := gin.Default()
  3. router.POST("/form_post", func(c *gin.Context) {
  4. message := c.PostForm("message")
  5. nick := c.DefaultPostForm("nick", "anonymous") // 此方法可以设置默认值
  6. c.JSON(200, gin.H{
  7. "status": "posted",
  8. "message": message,
  9. "nick": nick,
  10. })
  11. })
  12. router.Run(":8080")
  13. }

3. get、post混合

  1. POST /post?id=1234&page=1 HTTP/1.1
  2. Content-Type: application/x-www-form-urlencoded
  3. name=manu&message=this_is_great
  4. func main() {
  5. router := gin.Default()
  6. router.POST("/post", func(c *gin.Context) {
  7. id := c.Query("id")
  8. page := c.DefaultQuery("page", "0")
  9. name := c.PostForm("name")
  10. message := c.PostForm("message")
  11. fmt.Printf("id: %s; page: %s; name: %s; message: %s", id, page, name, message)
  12. })
  13. router.Run(":8080")
  14. }