从浏览器中获取cookie

从请求的首部获取cookie
语句r.Header[“Cookie”]返回了一个切片,这个切片包含了一个字符串,而这个字符串又包含了客户端发送的任意多个cookie。
package main
import (
   "fmt"
   "net/http"
)
func setCookie(w http.ResponseWriter, r *http.Request) {
c1 :=http.Cookie{
   Name: "fu",
   Value: "Go1",
   HttpOnly: true,
}
c2 :=http.Cookie{
   Name: "fu2",
   Value: "Go2",
   HttpOnly: true,
}
http.SetCookie(w,&c1)
http.SetCookie(w,&c2)
}
func getCookie(w http.ResponseWriter, r *http.Request)  {
   h :=r.Header["Cookie"]
   fmt.Fprintln(w,h)
}
func main() {
   server := http.Server{
      Addr:"127.0.0.1:8080",
   }
   http.HandleFunc("/set_cookie", setCookie)
   http.HandleFunc("/get_cookie", getCookie)
   server.ListenAndServe()
}

在这里插入图片描述

使用Cookie方法和Cookies
Go语言为Request结构提供了一个Cookie方法,这个方法可以获取指定名字的cookie。如果指定的cookie不存在,那么方法将返回一个错误。因为Cookie方法只能获取单个cookie,所以如果想要同时获取多个cookie,就需要用到Request结构的Cookies方法:Cookies方法可以返回一个包含了所有cookie的切片
package main

import (
   "fmt"
   "net/http"
)
func setCookie(w http.ResponseWriter, r *http.Request) {
c1 :=http.Cookie{
   Name: "fu",
   Value: "Go1",
   HttpOnly: true,
}
c2 :=http.Cookie{
   Name: "fu2",
   Value: "Go2",
   HttpOnly: true,
}
http.SetCookie(w,&c1)
http.SetCookie(w,&c2)
}
func getCookie(w http.ResponseWriter, r *http.Request)  {
   c1,err :=r.Cookie("fu")
   if err != nil {
      fmt.Fprintln(w,"Cannot get the first cookie")
   }
   cs :=r.Cookies()
   fmt.Fprintln(w,c1)
   fmt.Fprintln(w,cs)
}
func main() {
   server := http.Server{
      Addr:"127.0.0.1:8080",
   }
   http.HandleFunc("/set_cookie", setCookie)
   http.HandleFunc("/get_cookie", getCookie)
   server.ListenAndServe()
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值