读取 Jetty 服务器请求正文而不使其为空

Reading Jetty Server Request body without making it null

我有一个 Jetty.Server.Request 对象,它是一个 HTTP 请求,我需要在多种方法中使用它的正文。

我像这样访问正文的内容 -

String contents = baseRequest.getReader().readLine();

但是,这似乎从 HTTP 请求中删除了正文。如果我然后像这样再次尝试访问它 -

String contents2 = baseRequest.getReader().readLine();

contents2 将为空。

如何在不影响请求的情况下读取请求对象的主体?

根据 Servlet 规范,流仅可用一次。

自己复制一份(存入内存,或存入磁盘供日后阅读)

这是设计使然,因为许多请求主体可能非常大,根本没有足够的内存来以合理的方式处理重读。

请务必查看之前的答案:

因为这些答案演示了几种方法来完成对同一请求正文的多次读取。