package checkup import ( "errors" "fmt" "net/http" "time" ) func httpReq(client *http.Client, url string, timeout, status int) error { resp, err := client.Get(url) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != status { return fmt.Errorf("Bad status code, expected %d got: %d", status, resp.StatusCode) } return nil } func HttpStatusOK(url string, timeout, status int) error { client := &http.Client{Timeout: time.Duration(timeout) * time.Second} return httpReq(client, url, timeout, status) } func HttpNoRedirectStatusOK(url string, timeout, status int) error { client := &http.Client{ Timeout: time.Duration(timeout) * time.Second, CheckRedirect: httpNoRedirectfunc, } return httpReq(client, url, timeout, status) } func httpNoRedirectfunc(req *http.Request, via []*http.Request) error { return errors.New("Redirected") }