我正在try 连接到执行JSON数据的http流的端点.我想知道如何使用Go的net/http包执行基本请求,并在收到响应时读取它.目前,我只能在连接关闭时读取响应.

resp, err := http.Get("localhost:8080/stream")
if err != nil {
    ...
}
...
// perform work while connected and getting data

任何有识之士都将不胜感激!

谢谢!

-钢筋混凝土

推荐答案

执行JSON流解析的方法是使用解码器:

json.NewDecoder(resp.Body).Decode(&yourStuff)

对于一个流API来说,它是一堆返回的对象(就像Twitter一样),那么这个模型和内置的编码/json API应该可以很好地流传输.但是,如果是一个大型响应,其中有一个对象拥有一个包含10MB内容的巨型数组,那么您可能需要编写自己的解码器来取出这些内部片段并返回它们.我正在用我写的一个图书馆遇到这个问题.

Go相关问答推荐

在字符串与字符串子切片上使用len进行位转移产生意外输出

SEARCH On Conflict Clause不考虑乐观锁定版本

Go中的net.SplitHostPort(r.RemoteAddr)安全性

Golang中的泛型 struct /接口列表

通过渠道和goroutines增值1000倍

如何修复proxyconnect tcp:tls:第一条记录看起来不像tls握手

如何根据中间件的请求设置上下文值?获取 go-staticcheck 问题

有没有办法让sqlc生成可以使用pgxpool的代码

如何绕过深层 xml,没有嵌套循环?

使用goroutines在Golang中验证 struct

Go Programming Language书上的例子server2错了吗?

linter 警告:返回值被忽略

更改多对多连接表的名称

Go 中的 HTTP 请求验证中间件

在 Gorm 的 AfterFind() 钩子中获取智能 Select struct 的值

处理程序后访问 HTTP 请求上下文

Go 泛型:自引用接口约束

如何在gorm中处理多个查询

Golang:每个键具有多个值的映射

Go 语言的select语句