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:
|
case ConfigCookiejar:
|
||||||
v := values.(bool)
|
v := values.(bool)
|
||||||
if v {
|
if v {
|
||||||
if ses.cookiejar == nil {
|
if ses.client.Jar == nil {
|
||||||
j, err := cookiejar.New(nil)
|
ses.client.Jar = ses.cookiejar
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
ses.cookiejar = j
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ses.cookiejar = nil
|
ses.client.Jar = nil
|
||||||
}
|
}
|
||||||
case ConfigProxy:
|
case ConfigProxy:
|
||||||
switch v := values.(type) {
|
switch v := values.(type) {
|
||||||
|
@ -190,6 +186,7 @@ func (ses *Session) SetCookies(u *url.URL, cookies []*http.Cookie) {
|
||||||
|
|
||||||
// Cookies 返回 Cookies
|
// Cookies 返回 Cookies
|
||||||
func (ses *Session) Cookies(u *url.URL) []*http.Cookie {
|
func (ses *Session) Cookies(u *url.URL) []*http.Cookie {
|
||||||
|
|
||||||
return ses.cookiejar.Cookies(u)
|
return ses.cookiejar.Cookies(u)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,6 +201,16 @@ func (ses *Session) DelCookies(u *url.URL, name string) {
|
||||||
ses.SetCookies(u, cookies)
|
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 请求
|
// Get 请求
|
||||||
func (ses *Session) Get(url string) *Workflow {
|
func (ses *Session) Get(url string) *Workflow {
|
||||||
wf := NewWorkflow(ses)
|
wf := NewWorkflow(ses)
|
||||||
|
|
|
@ -340,37 +340,43 @@ func TestSession_SetConfigInsecure(t *testing.T) {
|
||||||
func TestSession_Cookies(t *testing.T) {
|
func TestSession_Cookies(t *testing.T) {
|
||||||
ses := NewSession()
|
ses := NewSession()
|
||||||
|
|
||||||
resp, err := ses.Get("http://httpbin.org/cookies/set").AddKVCookie("a", "1").Execute()
|
t.Run("set cookie", func(t *testing.T) {
|
||||||
if err != nil {
|
|
||||||
t.Error("cookies set error", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if !regexp.MustCompile(`"a": "1"`).MatchString(resp.DContent) {
|
resp, err := ses.Get("http://httpbin.org/cookies/set").AddKVCookie("a", "1").Execute()
|
||||||
t.Error(resp.DContent)
|
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) {
|
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"
|
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 := 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.Run("ua header test", func(t *testing.T) {
|
||||||
t.Error(resp.DContent, len(resp.DContent))
|
|
||||||
}
|
|
||||||
|
|
||||||
ses = NewSession()
|
ses.Header.Add(HeaderKeyUA, chromeua)
|
||||||
resp, err = ses.Get("https://www.baidu.com").AddHeader(HeaderKeyUA, chromeua).Execute()
|
resp, err := ses.Get("https://www.baidu.com").Execute()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error("cookies set error", err)
|
t.Error("cookies set error", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(resp.DContent) <= 5000 {
|
if len(resp.DContent) <= 5000 {
|
||||||
t.Error(resp.DContent, len(resp.DContent))
|
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