add ClearCookies method!
This commit is contained in:
parent
21a167304b
commit
025f911c0e
21
session.go
21
session.go
|
@ -124,15 +124,11 @@ func (ses *Session) SetConfig(typeConfig TypeConfig, values interface{}) {
|
|||
case ConfigCookiejar:
|
||||
v := values.(bool)
|
||||
if v {
|
||||
if ses.cookiejar == nil {
|
||||
j, err := cookiejar.New(nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
ses.cookiejar = j
|
||||
if ses.client.Jar == nil {
|
||||
ses.client.Jar = ses.cookiejar
|
||||
}
|
||||
} else {
|
||||
ses.cookiejar = nil
|
||||
ses.client.Jar = nil
|
||||
}
|
||||
case ConfigProxy:
|
||||
switch v := values.(type) {
|
||||
|
@ -190,6 +186,7 @@ func (ses *Session) SetCookies(u *url.URL, cookies []*http.Cookie) {
|
|||
|
||||
// Cookies 返回 Cookies
|
||||
func (ses *Session) Cookies(u *url.URL) []*http.Cookie {
|
||||
|
||||
return ses.cookiejar.Cookies(u)
|
||||
}
|
||||
|
||||
|
@ -204,6 +201,16 @@ func (ses *Session) DelCookies(u *url.URL, name string) {
|
|||
ses.SetCookies(u, cookies)
|
||||
}
|
||||
|
||||
// ClearCookies 清楚所有cookiejar上的cookies
|
||||
func (ses *Session) ClearCookies() {
|
||||
cjar, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
ses.cookiejar = cjar
|
||||
ses.client.Jar = ses.cookiejar
|
||||
}
|
||||
|
||||
// Get 请求
|
||||
func (ses *Session) Get(url string) *Workflow {
|
||||
wf := NewWorkflow(ses)
|
||||
|
|
|
@ -340,37 +340,43 @@ func TestSession_SetConfigInsecure(t *testing.T) {
|
|||
func TestSession_Cookies(t *testing.T) {
|
||||
ses := NewSession()
|
||||
|
||||
resp, err := ses.Get("http://httpbin.org/cookies/set").AddKVCookie("a", "1").Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
t.Run("set cookie", func(t *testing.T) {
|
||||
|
||||
if !regexp.MustCompile(`"a": "1"`).MatchString(resp.DContent) {
|
||||
t.Error(resp.DContent)
|
||||
}
|
||||
resp, err := ses.Get("http://httpbin.org/cookies/set").AddKVCookie("a", "1").Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
|
||||
if !regexp.MustCompile(`"a": "1"`).MatchString(resp.DContent) {
|
||||
t.Error(resp.DContent)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestSession_Header(t *testing.T) {
|
||||
chromeua := "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
|
||||
ses := NewSession()
|
||||
ses.Header.Add(HeaderKeyUA, chromeua)
|
||||
resp, err := ses.Get("https://www.baidu.com").Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
|
||||
if len(resp.DContent) <= 5000 {
|
||||
t.Error(resp.DContent, len(resp.DContent))
|
||||
}
|
||||
t.Run("ua header test", func(t *testing.T) {
|
||||
|
||||
ses = NewSession()
|
||||
resp, err = ses.Get("https://www.baidu.com").AddHeader(HeaderKeyUA, chromeua).Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
ses.Header.Add(HeaderKeyUA, chromeua)
|
||||
resp, err := ses.Get("https://www.baidu.com").Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
|
||||
if len(resp.DContent) <= 5000 {
|
||||
t.Error(resp.DContent, len(resp.DContent))
|
||||
}
|
||||
if len(resp.DContent) <= 5000 {
|
||||
t.Error(resp.DContent, len(resp.DContent))
|
||||
}
|
||||
|
||||
ses = NewSession()
|
||||
resp, err = ses.Get("https://www.baidu.com").AddHeader(HeaderKeyUA, chromeua).Execute()
|
||||
if err != nil {
|
||||
t.Error("cookies set error", err)
|
||||
}
|
||||
|
||||
if len(resp.DContent) <= 5000 {
|
||||
t.Error(resp.DContent, len(resp.DContent))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user