新聞中心
基本介紹
接口文檔:https://pkg.GO.dev/github.com/gogf/gf/v2/net/ghttp#Cookie

從網站建設到定制行業(yè)解決方案,為提供成都網站設計、網站建設服務體系,各種行業(yè)企業(yè)客戶提供網站建設解決方案,助力業(yè)務快速發(fā)展。成都創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質的建站服務。
常用方法:
type Cookie
func GetCookie(r *Request) *Cookie
func (c *Cookie) Contains(key string) bool
func (c *Cookie) Flush()
func (c *Cookie) Get(key string, def ...string) string
func (c *Cookie) GetSessionId() string
func (c *Cookie) Map() map[string]string
func (c *Cookie) Remove(key string)
func (c *Cookie) RemoveCookie(key, domain, path string)
func (c *Cookie) Set(key, value string)
func (c *Cookie) SetCookie(key, value, domain, path string, maxAge time.Duration, httpOnly ...bool)
func (c *Cookie) SetHttpCookie(httpCookie *http.Cookie)
func (c *Cookie) SetSessionId(id string)任何時候都可以通過?*ghttp.Request?對象獲取到當前請求對應的?Cookie?對象,因為?Cookie?和?Session?都是和請求會話相關,因此都屬于?ghttp.Request?的成員對象,并對外公開。?Cookie?對象不需要手動?Close?,請求流程結束后,?HTTP Server?會自動關閉掉。
此外,?Cookie?中封裝了兩個?SessionId?相關的方法:
- ?
Cookie.GetSessionId()?用于獲取當前請求提交的?SessionId?,每個請求的?SessionId?都是唯一的,并且伴隨整個請求流程,該值可能為空。 - ?
Cookie.SetSessionId(id string)?用于自定義設置?SessionId?到?Cookie?中,返回給客戶端(往往是瀏覽器)存儲,隨后客戶端每一次請求在?Cookie?中可帶上該?SessionId?。
在設置?Cookie?變量的時候可以給定過期時間,該時間為可選參數,默認的?Cookie?過期時間為一年。
默認的?SessionId?在?Cookie?中的存儲名稱為?gfsession?。
使用示例
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
s := g.Server()
s.BindHandler("/cookie", func(r *ghttp.Request) {
datetime := r.Cookie.Get("datetime")
r.Cookie.Set("datetime", gtime.Datetime())
r.Response.Write("datetime:", datetime)
})
s.SetPort(8199)
s.Run()
}執(zhí)行外層的?main.go?,可以嘗試刷新頁面 http://127.0.0.1:8199/cookie ,顯示的時間在一直變化。
對于控制器對象而言,從基類控制器中繼承了很多會話相關的對象指針,可以看做?alias?,可以直接使用,他們都是指向的同一個對象:
type Controller struct {
Request *ghttp.Request // 請求數據對象
Response *ghttp.Response // 返回數據對象(r.Response)
Server *ghttp.Server // WebServer對象(r.Server)
Cookie *ghttp.Cookie // COOKIE操作對象(r.Cookie)
Session *ghttp.Session // SESSION操作對象
View *View // 視圖對象
}由于對于?Web?開發(fā)者來講,?Cookie?都已經是非常熟悉的組件了,相關?API?也非常簡單,這里便不再贅述。
Cookie會話過期
?Cookie?的有效期默認是1年,如果我們期望?Cookie?隨著用戶的瀏覽會話過期,像這樣:
那么我們僅需要通過?SetCookie?來設置?Cookie?鍵值對并將?maxAge?參數設置為?0?即可。像這樣:
r.Cookie.SetCookie("MyCookieKey", "MyCookieValue", "", "/", 0) 網頁名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrameWEB服務開發(fā)-Cookie
路徑分享:http://www.5511xx.com/article/cooshjj.html


咨詢
建站咨詢
