null请求大型数据的主体

时间:2015-01-29 07:58:06

标签: java http post playframework

我在post方法体中发送大量文本。 我使用Postman进行测试。 然而它的工作正常,我可以读取这样的请求体:

String text = request().body().asText();

但是当我尝试在正文中发送大量数据时,我会为文本获取null。 我也尝试过使用字符串构建器,但我也得到了null。

 InputStream is = new ByteArrayInputStream(request().body().asText().getBytes());
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

默认播放将上传数据大小限制为100kb到文本解析器(*)。使用parsers.text.maxLength

中的application.conf可以将此值更改为更大的值
parsers.text.maxLength=4M

或使用

的特定响应或操作
@BodyParser.Of(value = TheBodyParser.class, maxLength = 4 * 1024 * 1024)
public Result upload() {
    // (...)
}

def upload = Action(parse.text(maxLength = 4 * 1024 * 1024)) { request =>
  // ()
}

(*)对于缓冲内容(多部分表格)的解析器,限制为10MB,可以使用parsers.disk.maxLength

进行更改