方法http.ReadRequest
需要bufio.Reader
而不是io.Reader
。这背后的原因是什么?
答案 0 :(得分:0)
无论如何它都会使用缓冲的阅读器。但由于io.Reader
性质,它不会自动将bufio.Reader
包装到缓冲区中 - 它可以从算法实际需要的基础io.Reader
中获取更多数据。并且,由于底层io.Reader
无法推回超过数据的内容,因此它将保留在该缓冲区中。在自动装配的情况下,在读取请求并且io.Reader
损坏后,缓冲区将丢失。因此,它要求您明确地包装您的阅读器以防止数据丢失。