开发 web 客户端时候,大多时候需要带入 Cookie。那么 http.NewRequest
是如何使用 cookie 的呢?
据本人了解,有两种方法并使用成功的。
1、直接设置 Requst 参数
Header.Set("Cookie","na=123;name=web视界")
这种方法较为简单,可以在快速开发时使用。
2、cookiejar,具体看代码实现
cookieJar,_:=cookiejar.New(nil)
client:=&http.Client{Jar:cookieJar}
_url:=config.url
//设置http request
req,err:=http.NewRequest("GET",_url,nil);
if err!=nil {
fmt.Printf("%s",err)
}
//设置Request 请求参数
req.Header.Set("User-Agent",config.ua)
//开始修改缓存cookiejar里面的值
var cookie []*http.Cookie
cookie=append(cookie,&http.Cookie{
Name:"demo",
Value:"webs视界",
Domain:"www.webkk.com",
Expires:time.Now().AddDate(1,0,0),
})
urlX,_:=url.Parse(_url);
cookieJar.SetCookies(urlX,cookie)
//开始请求
resp,err:=client.Do(req)
defer resp.Body.Close()
body,err:=ioutil.ReadAll(resp.Body);
if err!=nil {
}
fmt.Printf("%s",body)