判断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