簡體   English   中英

如何使用Akka的http客戶端設置最大內容長度?

[英]How to set the maximum content length with akka's http client?

如果我嘗試下載一個非常大的文件(超過100 MB),則會出現此錯誤:

 You can configure this by setting `akka.http.[server|client].parsing.max-content-length` or calling `HttpEntity.withSizeLimit` before materializing the dataBytes stream.


val responseFuture: Future[HttpResponse] =
  Http().singleRequest(HttpRequest(uri = "http://akka.io"))

我正在閱讀我可以以某種方式將HttpEntity設置為不帶withoutSizeLimit ,該怎么做?

順便說一句,如果我將那些配置設置添加到我的application.config中,它不能解決問題:

akka.http.server.parsing.max-content-length=913753229
akka.http.client.parsing.max-content-length=913753229

我注意到的源代碼注釋withSizeLimit(maxBytes: Long)的方法akka.http.scaladsl.model.HttpEntity

請注意,只有通過HttpEntity.limitable方法適當修改了此實體中包含的Source實例時,通過此方法應用的大小限制才有效。 對於HTTP層本身創建的所有實體,情況總是如此,但是如果您自己創建實體,並希望它們正確遵守通過此方法定義的限制,則需要確保自己應用HttpEntity.limitable

也許您需要使用HttpEntity對象limitableByteSource()方法轉換Source ,以使withoutSizeLimit生效。 這里有一些示例: akka http doc

我遇到了同樣的問題,但是文檔中有關withSizeLimit()為什么withSizeLimit()信息較少。 幸運的是,源代碼提供了有用的信息:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM