【发布时间】:2016-06-13 06:52:04
【问题描述】:
我正在使用 Akka 2.4.7 读取 Web 资源,该资源本质上是 JSON 对象流,用换行符分隔。流的大小实际上是无限的。
当大约 8MB 被消耗时,我得到一个异常:
[error] (run-main-0) EntityStreamSizeException: actual entity size (None) exceeded content length limit (8388608 bytes)! You can configure this by setting `akka.http.[server|client].parsing.max-content-length` or calling `HttpEntity.withSizeLimit` before materializing the dataBytes stream.
“实际实体大小(无)”似乎有点好笑,但我真正的问题是,如何使用HttpEntity.withSizeLimit(或者在我的情况下,应该是.withoutSizeLimit)。
我的请求代码是这样的:
val chunks_src: Source[ByteString,_] = Source.single(req)
.via(connection)
.flatMapConcat( _.entity.dataBytes )
我尝试添加.map( (x: HttpResponse) => x.withoutSizeLimit ),但无法编译。无论如何,HttpEntity 在进行客户端编程时的作用是什么?
我可以更改全局配置,但这有点忽略了要点。我想仅针对特定请求标记“无限制”。
作为进一步的问题,我了解在服务器端需要max-content-length,但为什么会影响客户端?
参考文献:
- Akka 2.4.7:Limiting message entity length
- Akka 2.4.7:HttpEntity
【问题讨论】:
标签: akka-http