对于上百兆的文件读取,应采取分片读取的方式,代码如下:
//GO 发送http请求:
resp,err := http.post(URL, "application/json", bytes.NewReader(buf))
if err!=nil{
fmt.Println("err",err)
}
//分片读取resp.Body中的大文件
func readBodyFile(resp *http.Response) ([]byte, error) {
buf := make([]byte, 1024)
var result string
for {
n, err := resp.Body.Read(buf)
if err != nil || n == 0 {
fmt.Println("出现错误")
break
}
result += string(buf[:n])
}
return []byte(result), err
}