Mercurial > mercurial > hgweb_golang.cgi
comparison src/httpsv/client.go @ 9:54a75ff1c288
New: client.go
| author | pyon@macmini |
|---|---|
| date | Sun, 20 Nov 2016 16:48:38 +0900 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 8:bf5d764cd80d | 9:54a75ff1c288 |
|---|---|
| 1 package main | |
| 2 | |
| 3 import ( | |
| 4 "fmt" | |
| 5 "io/ioutil" | |
| 6 "net/http" | |
| 7 ) | |
| 8 | |
| 9 func main() { | |
| 10 ch := make( chan string ) | |
| 11 var urls []string | |
| 12 urls = append( urls, "http://yahoo.com" ) | |
| 13 urls = append( urls, "http://yahoo.co.jp" ) | |
| 14 | |
| 15 for _, url := range urls { | |
| 16 go fetch( url, ch ) | |
| 17 } | |
| 18 for range urls { | |
| 19 fmt.Println( <-ch ) | |
| 20 } | |
| 21 } | |
| 22 | |
| 23 func fetch( url string, ch chan <- string ) { | |
| 24 resp, err := http.Get( url ) | |
| 25 if err != nil { | |
| 26 ch <- fmt.Sprint( err ) | |
| 27 return | |
| 28 } | |
| 29 b, err := ioutil.ReadAll( resp.Body ) | |
| 30 resp.Body.Close() | |
| 31 if err != nil { | |
| 32 ch <- fmt.Sprint( err ) | |
| 33 return | |
| 34 } | |
| 35 ch <- fmt.Sprintf( "%s", b ) | |
| 36 } | |
| 37 |
