diff options
Diffstat (limited to 'fetch/request.go')
-rw-r--r-- | fetch/request.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/fetch/request.go b/fetch/request.go new file mode 100644 index 0000000..a3c6f23 --- /dev/null +++ b/fetch/request.go @@ -0,0 +1,41 @@ +package fetch + +import ( + "fmt" + "io/ioutil" + "net/http" + "time" +) + +func getRes(api string) ([]byte, error) { + var body []byte + + c := http.Client{ + // TODO: timeout should be configurable by the user + Timeout: time.Second * 64, + } + + req, err := http.NewRequest(http.MethodGet, api, nil) + if err != nil { + return body, err + } + + req.Header.Set("User-Agent", "Andinus / Indus - framagit.org/andinus/indus") + + res, err := c.Do(req) + if err != nil { + return body, err + } + defer res.Body.Close() + + if res.StatusCode != 200 { + return body, fmt.Errorf("Unexpected response status code received: %d %s", + res.StatusCode, http.StatusText(res.StatusCode)) + } + + body, err = ioutil.ReadAll(res.Body) + if err != nil { + return body, err + } + return body, err +} |