例如一个很简单的下载github上raw文件的函数,conn总是一次性读取到了响应body的所有数据,无法像nodejs那种接收chunk,计算chunk大小来制作进度条。请问在go中是怎样制作下载进度条?
```go
package util
import (
"io/ioutil"
"net/http"
"net/url"
"path"
)
func Download(URL string)(error) {
resp, err := http.Get(URL)
if err != nil {
return err
}
defer resp.Body.Close()
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
u, err := url.Parse(URL)
if err != nil {
return err
}
fileName := path.Base(u.Path)
err = ioutil.WriteFile(fileName, data, 0755)
if err != nil {
return err
}
return nil
}
```
我该从tcp入手么?
有疑问加站长微信联系(非本文作者)