SocialDragon/instagram/http.go

35 lines
626 B
Go

package instagram
import (
"errors"
"log"
"net/http"
"strconv"
)
var sem = make(chan byte, 2)
var client = &http.Client{}
// GetHTTPResource gets HTTP resource with Instagram headers
func GetHTTPResource(u string) (*http.Response, error) {
sem <- 1
req, err := http.NewRequest("GET", u, nil)
if err != nil {
log.Fatalf("FAT HTTP - Failed to create new Request: %+v", err)
<-sem
return nil, err
}
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
}