diff --git a/http/get.go b/http/get.go new file mode 100644 index 0000000..bd0d432 --- /dev/null +++ b/http/get.go @@ -0,0 +1,27 @@ +package http + +import ( + "context" + "fmt" + "net/http" +) + +// Perform a HTTP Get request. +func Get(ctx context.Context, url string, headers http.Header) (*http.Response, error) { + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + return nil, err + } + + req.Header = headers + + resp, err := http.DefaultClient.Do(req) + if err != nil { + return nil, err + } + + if resp.StatusCode < 200 || resp.StatusCode >= 300 { + return nil, fmt.Errorf("HTTP Response: %s", resp.Status) + } + return resp, nil +}