2017-09-26 55 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

这解释了大部分的东西,你需要了解如何玩体解析器工作,因此如何做流体解析,在这个答案中没有重复的文档。