H5W3
当前位置:H5W3 > go > 正文

【go】go 怎样带多个cookie 实现 Get 请求呢?

1.我想测试一下某个业务接口,接口需带cookie,Get请求,现在做了一个请求dvwa 的 demo,但是多个cookie得调用很多次req.AddCookie,代码如下:

//带有cookie的Get请求
func main(){

client := &http.Client{};
req, err := http.NewRequest("GET", "http://192.168.1.89/dvwa", nil);
cookie1 := &http.Cookie{Name:"PHPSESSID",Value:"26c2tkqumv2a2l4o34qtdcbs80",HttpOnly:true};
cookie2 := &http.Cookie{Name:"security",Value:"impossible",HttpOnly:true};
req.AddCookie(cookie1);
req.AddCookie(cookie2);
cookie,err := req.Cookie("security");
fmt.Println(cookie);
resp,err := client.Do(req);
if err != nil {
panic(err.Error());
}
b, err := ioutil.ReadAll(resp.Body);
resp.Body.Close();
fmt.Printf("%s",b);

}

有更简单的方法吗,最好能就调用一次addCookie,
我的cookie是字符串格式的,除了http.cookie这种方法还有其他方法能转成*cookie吗

感激不尽!!

用cookiejar

func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "http://192.168.1.89/dvwa", nil)
jar, _ := cookiejar.New(nil)
jar.SetCookies(req.URL, []*http.Cookie{
&http.Cookie{Name: "PHPSESSID", Value: "26c2tkqumv2a2l4o34qtdcbs80", HttpOnly: true},
&http.Cookie{Name: "security", Value: "impossible", HttpOnly: true},
})
client.Jar = jar
resp, err := client.Do(req)
if err != nil {
panic(err.Error())
}
b, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
fmt.Printf("%s", b)
}

回答

本文地址:H5W3 » 【go】go 怎样带多个cookie 实现 Get 请求呢?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址