golangWEB框架gin學習之獲取get參數


原文地址:http://www.niu12.com/article/40
package main

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

func getRouteParams(c *gin.Context) {
// 獲取路由參數為name的值
// http://127.0.0.1:8888/route/card 輸出 card
name := c.Param("name")
c.String(http.StatusOK, name)
}

func getRoutePregParams(c *gin.Context) {
// 獲取路由參數為name的值 和job的值 job為無限長,忽略/,並且包含前一個/
// http://127.0.0.1:8888/route/card/
// 輸出 card /

// http://127.0.0.1:8888/route/card/name
// 輸出 card /name

// http://127.0.0.1:8888/route/card/name/hello
// 輸出 card /name/hello

name := c.Param("name")
job := c.Param("job")
c.String(http.StatusOK, name + " " + job)
}

/**
獲取路由參數
*/
func getParams(c *gin.Context) {     
// http://127.0.0.1:8888/?name=card
// 輸出 card card 程序員

// http://127.0.0.1:8888/?name=card&job=coder
// 輸出 card card coder

// 當有多個參數相同時,取第一個value
// http://127.0.0.1:8888/?name=card&job=coder&name=周起
// 輸出 card card coder

// http://127.0.0.1:8888/?name=周起&job=coder&name=card
// 輸出 周起 周起 coder

// c.Query() 等同於 c.Request.URL.Query().Get()
name := c.Query("name")
name2 := c.Request.URL.Query().Get("name")

// 設置默認參數,如果job參數不存在,默認為程序員
name3 := c.DefaultQuery("job", "程序員")
c.String(http.StatusOK, name + " " + name2 + " " + name3)
}

func getRepeatParams(c *gin.Context) {
name := c.QueryArray("name")
// http://127.0.0.1:8888/repeat?name=周起&name=card
// 輸出 name:[周起 card], type:[]string
fmt.Printf("name:%v, type:%T", name, name)

// http://127.0.0.1:8888/repeat?job[a]=周起&job[b]=card
// 輸出 job:map[a:周起 b:card], type:map[string]string
job := c.QueryMap("job")
fmt.Printf("job:%v, type:%T", job, job)
}

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

// 獲取路由參數
router.GET("/route/:name", getRouteParams)

// 獲取正則路由參數
router.GET("/route/:name/*job", getRoutePregParams)

// 獲取queryString
router.GET("/", getParams)
// 獲取同名參數
router.GET("/repeat", getRepeatParams)
router.Run(":8888")
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM