2013-10-10 40 views
1

http.Request类型当客户端发送请求时,主体关闭。为什么它需要关闭,为什么它不能是字符串,你可以反复阅读?什么是go lang http.Request在计算机科学方面的身体?

+4

寻找“流”。只要你需要一些表演或想要处理大数据,你就不能只玩弦乐。 –

+0

我喜欢你的anwser。我会接受它。如果你会放置一些链接或详细说明,这也会很好。 –

回答

7

这就是所谓的stream。这很有用,因为它可以让你处理数据,而不需要在内存中提供整组数据。它还可以让您以更快的速度提供操作结果:您不必等待计算整个集合。

只要你想处理大数据或担心表演,你需要流。

这也是一个方便的抽象,可以让您逐一处理数据,即使整个集合都可用,而无需处理偏移量来遍历整个集合。

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