前言:
go語言的gin框架go里面比較好的一個web框架, github的start數超過了18000.可見此框架的可信度
如何獲取請求中的參數
假如有這么一個請求:
POST /post/test?id=1234&page=1 HTTP/1.1
請求頭: Content-Type: application/x-www-form-urlencoded
form表單參數: name=manu&message=this_is_great
gin的實現:
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")
假如gin定義的路由路徑為:
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")
未完, 待續....