Rssmon2/fetch/fetch.go

41 lines
694 B
Go

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
}