我有一个Jetty.Server.Request对象,这是一个HTTP请求,我需要在多个方法中使用它。
我像这样访问身体的内容 -
String contents = baseRequest.getReader().readLine();
但是,这似乎从HTTP请求中删除了正文。如果我再尝试再次访问它 -
String contents2 = baseRequest.getReader().readLine();
contents2将为null。
如何在不影响请求的情况下读取请求对象的主体?
答案 0 :(得分:0)
根据Servlet规范,流只能使用一次。
自己复制一份(内存或磁盘供以后阅读)
这是设计的,因为许多请求主体可能非常大,并且根本没有足够的内存来以理智的方式处理重读。
请务必查看以前的答案:
Http Servlet request lose params from POST body after read it once
由于这些答案证明了完成同一请求体的多次读取的几种方法。