2017-09-26 50 views
0

我在java中有一個播放控制器。該請求的大小爲15MB。這個請求是來自APIGEE的。我在控制器中使用了原始的解析器將數據寫入文件。但我認爲它將整個請求數據一次寫入文件。這意味着整個請求必須在寫入文件之前的一段時間內存在內存中。在播放框架(JAVA)中有沒有辦法接收流請求?Playframework Java - 如何在控制器中接收chunked HTTP請求

回答

2

原體解析器不會將整個身體緩存到內存中,它將身體緩存到一個點(使用play.http.parser.maxMemoryBuffer配置,默認爲100kb),一旦超過,就將身體刷新到文件並啓動將它寫入文件,但它也會限制寫入文件的數據量,該文件使用play.http.parser.maxDiskBuffer配置,默認值爲10mb。您的15MB身體可能超出了此限制,因此您需要相應地增加play.http.parser.maxDiskBuffer。這全部在the documentation中解釋。

要回答怎樣流請求您的實際問題,爲用Java編寫定製車身解析器文檔是在這裏:

https://www.playframework.com/documentation/2.6.x/JavaBodyParsers#Writing-a-custom-body-parser

這解釋了大部分的東西,你需要了解如何玩體解析器工作,因此如何做流體解析,在這個答案中沒有重複的文檔。