diff --git a/client.go b/client.go index d40dbaf..0d9fbee 100644 --- a/client.go +++ b/client.go @@ -59,7 +59,9 @@ func DefaultClient(urlManager UrlManager) *Client { }, Jar: jar, } - return NewClient(client, urlManager) + c := NewClient(client, urlManager) + c.AddHttpHook(UserAgentHook{}) + return c } func (c *Client) AddHttpHook(hooks ...HttpHook) { @@ -77,13 +79,7 @@ func (c *Client) do(req *http.Request) (*http.Response, error) { return resp, err } -// 抽象Do方法,将所有的有效的cookie存入Client.cookies -// 方便热登陆时获取 -func (c *Client) Do(req *http.Request) (*http.Response, error) { - resp, err := c.do(req) - if err != nil { - return resp, err - } +func (c *Client) setCookie(resp *http.Response) { c.mu.Lock() defer c.mu.Unlock() cookies := resp.Cookies() @@ -91,6 +87,15 @@ func (c *Client) Do(req *http.Request) (*http.Response, error) { c.cookies = make(map[string][]*http.Cookie) } c.cookies[resp.Request.URL.String()] = cookies +} + +// 抽象Do方法,将所有的有效的cookie存入Client.cookies +// 方便热登陆时获取 +func (c *Client) Do(req *http.Request) (*http.Response, error) { + resp, err := c.do(req) + if err == nil { + c.setCookie(resp) + } return resp, err }