1
我使用Akka 2.4.7來讀取一個Web資源,它本質上是一個JSON對象流,用換行符分隔。溪流的大小實際上是無限的。如何在Akka-http(客戶端)HttpRequest中使用.withoutSizeLimit?
當週圍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
,但爲什麼會影響客戶端?
參考文獻:
- 阿卡2.4.7:Limiting message entity length
- 阿卡2.4.7:HttpEntity
謝謝。不幸的是,我不再在該代碼上積極工作。希望別人覺得這很有用。 – akauppi