java - 大数据的空请求体

标签 java http post playframework

我在 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/

相关文章:

java - 无法统计字数?

node.js - 无法从外部访问运行在 Ubuntu 服务器上的 Express Web 服务器

java - 获取 Jersey 后端的所有输入文件

ruby-on-rails - 在 Rails 中发送 POST 请求

java - 缓存区域和缓存内存组 : Memcache, EhCache、JCS

java - 生成不同集合的组合

java - 在java中将字符串转换为浮点型

php - Slim Framework : Method not allowed Method not allowed. 必须是以下之一:POST

security - Lift 是否会阻止 HTTP 响应拆分?

java - RESTful 中的 500 内部服务器错误