日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrameWEB服務開發(fā)-Cookie

基本介紹

接口文檔: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?相關的方法:

  1. ?Cookie.GetSessionId()?用于獲取當前請求提交的?SessionId?,每個請求的?SessionId?都是唯一的,并且伴隨整個請求流程,該值可能為空。
  2. ?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