阅读背景:

Go奇技淫巧

来源:互联网 

判断io读取是否结束,尽量用if n==0这种方式,因为可以判断很多种情况

package main

import (
    "fmt"
    "io"
    "net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello"))
    fmt.Println(r.Header)
}

func main() {
    resp, err := http.Get("https://www.baidu.com")
    if err != nil {
        return
    }
    buf := make([]byte, 4096)
    results := ""
    for {
        n, err := resp.Body.Read(buf)
        if n == 0 { //判断io读取是否结束,尽量用if n==0这种方式,因为可以判断很多种情况
            break
        }
        if err != nil && err != io.EOF {
            fmt.Println(err)
            break
        }
        results += string(buf[:n])
    }
    fmt.Println(results)
}pack



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: