go get 请求获取http body

    xiaoxiao2021-04-14  42

    package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { arg0 := os.Args[0:] arg1 := os.Args[1:] arg2 := os.Args[2:] fmt.Println(arg0); fmt.Println(arg1); fmt.Print("\n") fmt.Println(arg2); for _, url := range os.Args[1:] { resp, err := http.Get(url) if err != nil { fmt.Fprintf(os.Stderr, "fetch: %v\n", err) os.Exit(1) } b, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { fmt.Fprintf(os.Stderr, "fetch: reading %s: %v\n", url, err) os.Exit(1) } fmt.Printf("%s", b) } } package main import ( "fmt" // "io/ioutil" "net/http" "os" "io" ) func main() { arg0 := os.Args[0:] arg1 := os.Args[1:] arg2 := os.Args[2:] fmt.Println(arg0); fmt.Println(arg1); fmt.Print("\n") fmt.Println(arg2); for _, url := range os.Args[1:] { resp, err := http.Get(url) if err != nil { fmt.Fprintf(os.Stderr, "fetch: %v\n", err) os.Exit(1) } //b, err := ioutil.ReadAll(resp.Body) io.Copy(os.Stdout, resp.Body) resp.Body.Close() if err != nil { fmt.Fprintf(os.Stderr, "fetch: reading %s: %v\n", url, err) os.Exit(1) } //fmt.Printf("%s", b) } } package main import ( "fmt" // "io/ioutil" // "net/http" "os" // "io" ) func main() { arg0 := os.Args[0:] arg1 := os.Args[1:] arg2 := os.Args[2:] fmt.Println(arg0); fmt.Println(arg1); fmt.Print("\n") fmt.Println(arg2); for _, url := range os.Args[1:] { fmt.Printf("url->: %s\n", url) } }

    package main import ( "fmt" // "io/ioutil" // "net/http" "os" // "io" ) func main() { arg0 := os.Args[0:] arg1 := os.Args[1:] arg2 := os.Args[2:] fmt.Println(arg0); fmt.Println(arg1); fmt.Print("\n") fmt.Println(arg2); for _, url := range os.Args[1:] { fmt.Printf("url->: %s\n", url) } // ch := make(chan string) for range os.Args[1:] { fmt.Println("This \n") } } //fetchall fetches URLs in parallel and reports their times and sizes package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "time" ) func main() { start := time.Now() ch := make(chan string) for _, url := range os.Args[1:] { go fetch(url, ch)//start a goroutine } for range os.Args[1:] { fmt.Println(<-ch) } fmt.Printf("%.2fs elapsed\n", time.Since(start).Seconds()) } func fetch(url string, ch chan<- string) { start := time.Now() resp, err := http.Get(url) if err != nil { ch <- fmt.Sprint(err)//send to channel ch return } nbytes, err := io.Copy(ioutil.Discard, resp.Body) resp.Body.Close() //don not leak resoures if err != nil { ch <- fmt.Sprintf("while reading %s: %v", url, err) return } secs := time.Since(start).Seconds() ch <- fmt.Sprintf("%.2fs } %s", secs, nbytes, url) }

    转载请注明原文地址: https://ju.6miu.com/read-670002.html

    最新回复(0)