2022-08-06 08:12:45 +00:00
|
|
|
package clients
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"net/http"
|
2022-08-07 10:01:21 +00:00
|
|
|
"net/url"
|
2022-08-06 08:12:45 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type HttpClient struct {
|
|
|
|
http http.Client
|
|
|
|
}
|
|
|
|
|
2022-08-07 10:01:21 +00:00
|
|
|
func (c HttpClient) Get(u *url.URL) (io.Reader, error) {
|
|
|
|
res, err := c.http.Get(u.String())
|
2022-08-06 08:12:45 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("error retrieving url: %s", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if res.StatusCode != 200 {
|
|
|
|
return nil, fmt.Errorf("error retrieving url: %d %s", res.StatusCode, res.Status)
|
|
|
|
}
|
|
|
|
|
|
|
|
return res.Body, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewBasicHttpClient() HttpClient {
|
|
|
|
return HttpClient{
|
|
|
|
http: http.Client{},
|
|
|
|
}
|
|
|
|
}
|