在上传播放框架中增加json限制

时间:2016-04-17 21:08:50

标签: java playframework-2.0

我正在使用play framework v2.5(Java API)。在一个post处理程序中,我得到以下异常(这使我相信它可能与通过的json数据的大小有关)。我已将以下内容添加到控制器操作的顶部,但这还没有解决问题:

contents1 = file[:-1].split(';')
contents = []
for part in contents1:
    current = current + part + ';'
    contents.append(current)

是否有另一个配置(可能在application.conf文件中设置)或其他地方,我可以增加允许处理此post请求的大小限制。我正在使用Java API。

@BodyParser.Of(value = BodyParser.Json.class, maxLength = 1024 * 1024 * 10 * 10)

2 个答案:

答案 0 :(得分:1)

仅供参考,这里介绍了内置的身体解析器:

https://www.playframework.com/documentation/2.5.x/ScalaBodyParsers#max-content-length

所以你可以使用play.http.parser.maxMemoryBuffer或在你的行动中定义它:

def save = Action(parse.maxLength(1024 * 10, storeInUserFile)) {  request =>
  Ok("Saved the request content to " + request.body)
}

答案 1 :(得分:0)

我将使用 play.http.parser.maxMemoryBuffer
在application.conf中增加数据限制。当我开始工作时,我会更新帖子。

可以使用application.conf文件中的以下字段来修改play框架中的各种缓冲区:

parsers.text.maxLength=
play.http.parser.maxDiskBuffer=
play.http.parser.maxMemoryBuffer=

增加缓冲区大小解决了我的问题。