1

在 http.Request 类型中,当客户端发送请求时,Body 会关闭。为什么它需要关闭,为什么它不能是字符串,你可以一遍又一遍地阅读?

4

2 回答 2

7

这称为。它很有用,因为它可以让您处理数据,而无需在内存中使用整个数据集。它还可以让您更快地给出操作的结果:您不必等待整个集合被计算出来。

只要您想处理大数据或担心性能,您就需要流。

它也是一种方便的抽象,即使整个数据集可用,您也可以一个一个地处理数据,而无需处理偏移量来迭代整个数据集。

于 2013-10-10T10:50:14.657 回答
2

bytes您可以使用和包将请求流存储为字符串io

func handler(w http.ResponseWriter, r *http.Request) {
    var bodyAsString string
    b := new(bytes.Buffer)

    _, err := io.Copy(b, r)
    if err == io.EOF {
        bodyAsString = b.String()
    }
}
于 2013-10-10T10:10:35.563 回答