猿问

如何做回应.身体阅读方法工作?

假设下面的代码,我正在从http获取请求响应中读取,Read方法如何在内部工作?


它是在内部一次性获取数据,然后根据 buf 大小进行写入,并在下一次迭代中使用具有相同数据并更新游标,还是获取数据直到 buf 已满,然后在下一次迭代中再次获取数据?


var resp *http.Response

buf := make([]byte, 50)

for {

    r, err := resp.Body.Read(buf)


    if err == io.EOF {

        break

    }

}


阿晨1998
浏览 122回答 1
1回答

撒科打诨

根据阅读器界面文档:读取将最多 len(p) 字节读取到 p 中。它返回读取的字节数 (0 < = n <= len(p))和遇到的任何错误。即使 Read 返回 n < len(p),它也可以在调用期间将所有 p 用作暂存空间。如果某些数据可用,但不是 len(p) 字节,则 Read 通常会返回可用的数据,而不是等待更多数据。响应文档从以下角度进行了一些详细介绍:Body在读取“正文”字段时,将按需流式传输响应正文。如果网络连接失败或服务器终止响应,Body.Read 调用将返回错误。
随时随地看视频慕课网APP

相关分类

Go
我要回答