![](/img/trans.png)
[英]How to Read a http Response body to buffer in golang(without using ioutil.ReadAll())
[英]How do I read a streaming response body using Golang's net/http package?
我正在尝试连接到执行json数据的http流的端点。 我想知道如何使用Go的net / http包执行基本请求并在响应时读取响应。目前,我只能在连接关闭时读取响应。
resp, err := http.Get("localhost:8080/stream")
if err != nil {
...
}
...
// perform work while connected and getting data
任何见解将不胜感激!
谢谢!
-RC
Eve Freeman提供的答案是读取json数据的正确方法。 要读取任何类型的数据,您可以使用以下方法:
resp, err := http.Get("http://localhost:3000/stream")
...
reader := bufio.NewReader(resp.Body)
for {
line, err := reader.ReadBytes('\n')
...
log.Println(string(line))
}
进行流式JSON解析的方法是使用解码器:
json.NewDecoder(resp.Body).Decode(&yourStuff)
对于一个流媒体API,其中有一堆对象回来(一个Twitter),这应该流式传输这个模型和内置的编码/ json API。 但是如果它是一个很大的响应,你有一个拥有10MB内容的巨大数组的对象,你可能需要编写自己的解码器来拉出那些内部碎片然后返回它们。 我正在编写一个我写过的库,遇到了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.