在 http.Request 类型中,当客户端发送请求时,Body 会关闭。为什么它需要关闭,为什么它不能是字符串,你可以一遍又一遍地阅读?
问问题
705 次
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 回答