我在 post 方法的正文中发送大量文本。 我使用 Postman 进行测试。 但是它工作正常,我可以像这样阅读请求正文:
String text = request().body().asText();
但是当我尝试在正文中发送大量数据时,我得到的文本为空。 我也尝试使用字符串生成器,但我也得到了 null。
InputStream is = new ByteArrayInputStream(request().body().asText().getBytes());
BufferedReader br = new BufferedReader(new InputStreamReader(is));
有办法解决这个问题吗??
最佳答案
默认情况下,Play 将上传数据大小限制为 100kb 到文本解析器 (*)。这可以在 application.conf
parsers.text.maxLength
全局更改为更大的值
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
关于java - 大数据的空请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209591/