gin框架獲取參數


獲取querystring參數

querystring指的是URL?后面攜帶的參數,例如:/user/search?username=小王子&address=沙河。 獲取請求的querystring參數的方法如下:

func main() {
        //Default返回一個默認的路由引擎
        r := gin.Default()
        r.GET("/user/search", func(c *gin.Context) {
                username := c.DefaultQuery("username", "小王子")
                //username := c.Query("username")
                address := c.Query("address")
                //輸出json結果給調用方
                c.JSON(http.StatusOK, gin.H{
                        "message":  "ok",
                        "username": username,
                        "address":  address,
                })
        })
        r.Run()
}

  


 

獲取form參數

當前端請求的數據通過form表單提交時,例如向/user/search發送一個POST請求,獲取請求數據的方式如下:

func main() {
        //Default返回一個默認的路由引擎
        r := gin.Default()
        r.POST("/user/search", func(c *gin.Context) {
                // DefaultPostForm取不到值時會返回指定的默認值
                //username := c.DefaultPostForm("username", "小王子")
                username := c.PostForm("username")
                address := c.PostForm("address")
                //輸出json結果給調用方
                c.JSON(http.StatusOK, gin.H{
                        "message":  "ok",
                        "username": username,
                        "address":  address,
                })
        })
        r.Run(":8080")
}

  


 

獲取json參數

當前端請求的數據通過JSON提交時,例如向/json發送一個POST請求,則獲取請求參數的方式如下:

r.POST("/json", func(c *gin.Context) {
        // 注意:下面為了舉例子方便,暫時忽略了錯誤處理
        b, _ := c.GetRawData()  // 從c.Request.Body讀取請求數據
        // 定義map或結構體
        var m map[string]interface{}
        // 反序列化
        _ = json.Unmarshal(b, &m)

c.JSON(http.StatusOK, m)
})

  


 

更便利的獲取請求參數的方式,參見下面的 參數綁定 小節。

獲取path參數

請求的參數通過URL路徑傳遞,例如:/user/search/小王子/沙河。 獲取請求URL路徑中的參數的方式如下。

func main() {
        //Default返回一個默認的路由引擎
        r := gin.Default()
        r.GET("/user/search/:username/:address", func(c *gin.Context) {
                username := c.Param("username")
                address := c.Param("address")
                //輸出json結果給調用方
                c.JSON(http.StatusOK, gin.H{
                        "message":  "ok",
                        "username": username,
                        "address":  address,
                })
        })

r.Run(":8080")
}

  

 

摘自 <https://www.liwenzhou.com/posts/Go/Gin_framework/>

 

 


免責聲明!

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



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