Akka HTTP 客户端 EntityStreamSizeException

use*_*950 2 scala akka akka-stream akka-http

我尝试使用 Akka HTTP 向本地主机发送 get 请求,但出现以下异常:

EntityStreamSizeException: actual entity size (Some(10166731700)) 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.)
Run Code Online (Sandbox Code Playgroud)

基本上,我尝试请求的本地主机上的文件非常大。

我尝试使用 来解决它withoutSizeLimit,但它不起作用:

val request = Get("http://localhost:8080/oa-ok.ntriples")
val limitedRequest = request.withEntity(request.entity.withoutSizeLimit())
val responseFuture = Http().singleRequest(limitedRequest)
Run Code Online (Sandbox Code Playgroud)

我也尝试使用withSizeLimit,但没有帮助。有任何想法吗?

Jef*_*ung 5

用于withoutSizeLimit响应实体,而不是请求实体。例如:

val responseFuture: Future[HttpResponse] =
  Http().singleRequest(HttpRequest(uri = "http://localhost:8080/oa-ok.ntriples"))

val responseSource: Source[ByteString, NotUsed] =
  Source.fromFuture(responseFuture)
    .flatMapConcat(_entity.withoutSizeLimit.dataBytes)
Run Code Online (Sandbox Code Playgroud)

responseSourceSource是响应实体的Akka Streams 。