【发布时间】:2016-01-21 14:29:18
【问题描述】:
我正在使用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] 或 Flow[In,Out,M2]?我愿意遵循akka-stream的思想。
更新:还值得一提的是,响应是无止境的,并且必须实时进行聚合
【问题讨论】:
标签: scala akka http-streaming akka-stream akka-http