1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
好的,問題是 cookie jar 實(shí)現(xiàn),更具體地說是 SetCookies 函數(shù),現(xiàn)在是:
func (jar *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
jar.Lock()
jar.cookies[u.Host] = cookies
jar.Unlock()
}
這是錯(cuò)誤的,因?yàn)樾碌?cookie 不會(huì)被添加到現(xiàn)有的 cookie 中,它們只會(huì)作為新的 cookie 丟棄舊的而添加。
似乎正確的方法是:
func (jar *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
jar.Lock()
if _, ok := jar.cookies[u.Host]; ok {
for _, c := range cookies {
jar.cookies[u.Host] = append(jar.cookies[u.Host], c)
}
} else {
jar.cookies[u.Host] = cookies
}
jar.Unlock()
}
- 1 回答
- 0 關(guān)注
- 183 瀏覽
添加回答
舉報(bào)