package fetch import ( "io/ioutil" "net/http" ) type Fetch struct { process func(string, []byte) error client *http.Client port string } func New(port string, process func(string, []byte) error) (*Fetch, error) { return &Fetch{ process: process, client: &http.Client{}, port: port, }, nil } func (fetcher *Fetch) FetchProcess(url string) error { req, err := http.NewRequest("GET", url, nil) if err != nil { return err } resp, err := fetcher.client.Do(req) if err != nil { return err } defer resp.Body.Close() b, err := ioutil.ReadAll(resp.Body) if err != nil { return err } if err := fetcher.process(url, b); err != nil { return err } return nil }