什么是go lang http.Request计算机科学方面的身体?

时间:2013-10-10 10:01:23

标签: go

在http.Request类型中

当客户端发送请求时,Body将关闭。为什么它需要关闭,为什么它不能是字符串,你可以反复阅读?

2 个答案:

答案 0 :(得分:7)

这称为stream。它很有用,因为它可以让您处理数据,而无需在内存中提供整套数据。它还允许您更快地给出可能执行的操作的结果:您不等待计算整个集合。

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

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

答案 1 :(得分:2)

您可以使用bytesio包将请求流存储为字符串:

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()
    }
}