我已经安静了一点搜索,我还没有真正找到这个问题的任何答案。你如何用Go下载一个分块响应。我对python比较熟悉。在python中我会做这样的事情
with closing(requests.get('some_url' ,stream=True)) as res:
for chunk in res.iter_content(chunk_size=512):
#do something with chunk
我尝试了几种不同的方法来实现这个效果。这是我最近的尝试。
func DownloadLogs(start int, end int) {
url := "removed for security"
client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Auth-Key", "removed for security")
req.Header.Set("X-Auth-Email", "removed for security")
res, err := client.Do(req)
if err != nil {
panic(err.Error())
}
defer res.Body.Close()
// output, err := os.Create("test.txt")
// if err != nil {
// fmt.Println("Error while creating", "test", "-", err)
// return
// }
// defer output.Close()
reader := bufio.NewReader(res.Body)
for {
line, err := reader.ReadBytes('\n')
if err != nil {
return
}
println(string(line))
}
}
我正在使用Go的http库,但我也尝试过去的小睡库。