iplistget/common/utils.go

53 lines
890 B
Go

package common
import (
"errors"
"fmt"
"io"
"io/ioutil"
"net/http"
)
func FetchURL(url string) ([]byte, error) {
resp, err := http.Get(url)
if resp != nil {
defer resp.Body.Close()
}
if err != nil {
return nil, err
}
if resp.StatusCode != 200 {
return nil, errors.New(fmt.Sprintf("Request failed, http status: %v", resp.StatusCode))
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return body, nil
}
func URLReader(url string) (io.ReadCloser, error) {
resp, err := http.Get(url)
if resp == nil {
return nil, errors.New("Server returned empty response")
}
if err != nil {
// Even on error response may be non-nil
resp.Body.Close()
return nil, err
}
if resp.StatusCode != 200 {
resp.Body.Close()
return nil, errors.New(fmt.Sprintf("Request failed, http status: %v", resp.StatusCode))
}
return resp.Body, nil
}