我akka-http
用来向发送回分块响应的 http 服务发出请求。这就是相关代码的样子:
val httpRequest: HttpRequest = //build the request
val request = Http().singleRequest(httpRequest)
request.flatMap { response =>
response.entity.dataBytes.runForeach { chunk =>
println("-----")
println(chunk.utf8String)
}
}
命令行中生成的输出如下所示:
-----
{"data":
-----
"some text"}
-----
{"data":
-----
"this is a longer
-----
text"}
-----
{"data": "txt"}
-----
...
数据的逻辑部分 - 在这种情况下是一个 json 以行尾符号结束\r\n
,但问题是,json 并不总是适合单个 http 响应块,如上面示例中清晰可见的那样。
我的问题是 - 我如何将传入的分块数据连接到完整的 json 中,以便生成的容器类型仍然是Source[Out,M1]
or Flow[In,Out,M2]
?我想遵循akka-stream
.
更新:值得一提的是,响应是无止境的,聚合必须实时完成