GoGronkh/image/http.go

48 lines
1.2 KiB
Go

package image
import (
"log"
"net/http"
"strconv"
"time"
"errors"
)
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", "*/*")
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 != 200 {
res.Body.Close()
<- sem
return nil, errors.New(strconv.Itoa(res.StatusCode))
}
<- sem
return res, nil
}