golang解析来自套接字的分块HTTP响应

我的邮件目标是从连接到 HTTP 服务器的 TCP 套接字读取数据,并逐块解析 HTTP 响应块(传输编码:分块) - 服务器每 30 秒在同一连接上发送一个块


我附上了我的代码。似乎 io.Copy 读取了第一个块,然后在返回之前等待下一个块,所以它阻止了我。


当它们到达时,我如何阅读这些块,而无需等待下一个?


func readHttpChunk(server net.conn) {

    buf := bufio.NewReader(server)

    for {

        resp, err := http.ReadResponse(buf, nil)

        b := new(bytes.Buffer)

        io.Copy(b, resp.Body)

        fmt.Printf("Got me a chunk!")

    }

}


缥缈止盈
浏览 147回答 1
1回答

米脂

而不是使用io.Copyuse resp.Body.Read(buf)wherebuf是一个分配的字节片。使用足够大的缓冲区,以免块被截断。读取应该填充buf一个块。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go