私はAkka 2.4.7を使用して、基本的に改行で区切られたJSONオブジェクトのストリームであるWebリソースを読み込んでいます。ストリームのサイズは事実上無制限です。Akka-http(クライアント)で.withoutSizeLimitを使用する方法HttpRequest?
8メガバイトが消費されたの周りに、私は例外を取得:
[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