從gin的請求中獲取參數的各種方法


舉例請求

POST   /post/test?id=1234&page=1  HTTP/1.1

請求頭:  Content-Type: application/x-www-form-urlencoded

form表單參數:  name=manu&message=this_is_great

實現

id := c.Query("id") //查詢請求URL后面的參數
page := c.DefaultQuery("page", "0") //查詢請求URL后面的參數,如果沒有填寫默認值
name := c.PostForm("name") //從表單中查詢參數

//POST和PUT主體參數優先於URL查詢字符串值。
name := c.Request.FormValue("name") 

//返回POST並放置body參數,URL查詢參數被忽略
name := c.Request.PostFormValue("name")

//從表單中查詢參數,如果沒有填寫默認值  
message := c.DefaultPostForm("message", "aa")

請求的定義

router.POST("/post/:uuid", func(c *gin.Context){
    ...
}

獲取uuid

uuid := c.Param("uuid") //取得URL中參數

其他參數的獲取

s, _ := c.Get("current_manager") //從用戶上下文讀取值      

var u User

//從http.Request中讀取值到User結構體中,手動確定綁定類型binding.Form
err1 := c.BindWith(&u, binding.Form) 

//從http.Request中讀取值到User結構體中,根據請求方法類型和請求內容格式類型自動確定綁定類型
err2 := c.Bind(&u)

//從session中讀取值
//用戶上下文和session生命周期不同,每一次請求會生成一個對應的上下文,一次http請求結束,該次請求的上下文結束,一般來說session(會話)會留存一段時間
//session(會話)中一般保存用戶登錄狀態等信息,context(上下文)主要用於在一次http請求中,在中間件(流)中進行信息傳遞
user := sessions.Default(c).get("user")


免責聲明!

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



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