读取 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 规范,流仅可用一次。
自己复制一份(存入内存,或存入磁盘供日后阅读)
这是设计使然,因为许多请求主体可能非常大,根本没有足够的内存来以合理的方式处理重读。
请务必查看之前的答案:
因为这些答案演示了几种方法来完成对同一请求正文的多次读取。
我有一个 Jetty.Server.Request 对象,它是一个 HTTP 请求,我需要在多种方法中使用它的正文。
我像这样访问正文的内容 -
String contents = baseRequest.getReader().readLine();
但是,这似乎从 HTTP 请求中删除了正文。如果我然后像这样再次尝试访问它 -
String contents2 = baseRequest.getReader().readLine();
contents2 将为空。
如何在不影响请求的情况下读取请求对象的主体?
根据 Servlet 规范,流仅可用一次。
自己复制一份(存入内存,或存入磁盘供日后阅读)
这是设计使然,因为许多请求主体可能非常大,根本没有足够的内存来以合理的方式处理重读。
请务必查看之前的答案:
因为这些答案演示了几种方法来完成对同一请求正文的多次读取。