package main import ( "log" "net/http" "strconv" "time" ) var sem = make(chan byte, 5) var client = &http.Client{} // Make an HTTP Get Request to u func GetHTTPResource(u string) (*http.Response, error) { sem <- 1 // Prepare HTTP Client, Cookie and Request cookie := &http.Cookie { Name : "POPUPCHECK", Value : strconv.FormatInt(time.Now().UnixNano() / 1000000, 10), Domain : "gronkh.de", Path : "/", } req, err := http.NewRequest("GET", u, nil) req.AddCookie(cookie) req.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") req.Header.Add("Cache-Control", "max-age=0") req.Header.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12") if err != nil { log.Fatalf("FAT HTTP - Failed to create new Request: %+v", err) <- sem return nil, err } // Execute HTTP Request res, err := client.Do(req) if err != nil { <- sem return nil, err } if res.StatusCode == http.StatusNotFound { res.Body.Close() <- sem return nil, nil } <- sem return res, nil }