從gin的請求中獲取引數的各種方法
阿新 • • 發佈:2020-09-02
舉例請求
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")