September 14, 2018 · golang

Fetching site cookies via Go

Depicts the usage of cookiejar to retrieve cookies from a website.

type MyClient struct {
	client    http.Client    //http client
	jar       *cookiejar.Jar //jar
}

// init - initialises the http client
func (s *MyClient) init() {
	s.jar, _ = cookiejar.New(nil)
	s.client = http.Client{Jar: s.jar}
}

// getCookies - Gets cookies
func (s *MyClient) getCookies() map[string][]*http.Cookie {
	cookies := make(map[string][]*http.Cookie)
	r, err := s.client.Get("https://some-website.com")
	if err != nil {
		fmt.Println(err)
		return cookies
	}
	defer r.Body.Close()
	siteCookies := s.jar.Cookies(r.Request.URL)
	cookies["cookies"] = siteCookies
	return cookies
}


func main() {
	cc := &MyClient{}
	cc.init()
	cookies := cc.getCookies()
        fmt.Println(cookies)
}

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket