【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)

}

回答

以上是 【go】go 怎样带多个cookie 实现 Get 请求呢? 的全部内容, 来源链接: www.h5w3.com/114885.html

回到顶部