我的郵件目標(biāo)是從連接到 HTTP 服務(wù)器的 TCP 套接字讀取數(shù)據(jù),并逐塊解析 HTTP 響應(yīng)塊(傳輸編碼:分塊) - 服務(wù)器每 30 秒在同一連接上發(fā)送一個(gè)塊我附上了我的代碼。似乎 io.Copy 讀取了第一個(gè)塊,然后在返回之前等待下一個(gè)塊,所以它阻止了我。當(dāng)它們到達(dá)時(shí),我如何閱讀這些塊,而無(wú)需等待下一個(gè)?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!") }}
1 回答

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
而不是使用io.Copy
use resp.Body.Read(buf)
wherebuf
是一個(gè)分配的字節(jié)片。使用足夠大的緩沖區(qū),以免塊被截?cái)唷Wx取應(yīng)該填充buf
一個(gè)塊。
- 1 回答
- 0 關(guān)注
- 178 瀏覽
添加回答
舉報(bào)
0/150
提交
取消