added url fetching example

This commit is contained in:
jian.han 2018-01-25 11:21:49 +10:00
parent 412871154a
commit 0057f27184

View File

@ -0,0 +1,50 @@
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
urls := []string{
"http://www.reddit.com/r/aww.json",
"http://www.reddit.com/r/funny.json",
"http://www.reddit.com/r/programming.json",
}
resc, errc := make(chan string), make(chan error)
for _, url := range urls {
go func(url string) {
body, err := fetch(url)
if err != nil {
errc <- err
return
}
resc <- string(body)
}(url)
}
for i := 0; i < len(urls); i++ {
select {
case res := <-resc:
fmt.Println(res)
case err := <-errc:
fmt.Println(err)
}
}
}
func fetch(url string) (string, error) {
res, err := http.Get(url)
if err != nil {
return "", err
}
body, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
return "", err
}
return string(body), nil
}