0

试图检索 HttpServeletRequest 对象的数据。但它会抛出 Java Lang Illegal State 异常:

已经为此请求调用了 getInputStream()

try {
        String test = null;
        if (request.getMethod().equalsIgnoreCase(request.getMethod())) {
            test = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
        }
    } catch (Exception ec) {
        logger.error("Exception newRemarksUpdated : " + ec.getMessage());
    }
4

2 回答 2

0

根据文档,您不能同时使用面向字符和面向字节的流来读取请求。我敢打赌你在getInputStream()别的地方打过电话。您应该在任何地方使用类似的方法。

于 2019-07-25T13:11:38.763 回答
0

首先,您将对象实例与其自身进行比较。此 if 语句的条件将始终为真。

if (request.getMethod().equalsIgnoreCase(request.getMethod()))

其次,创建一个读者实例,这样操作起来会更容易。

BufferedReader reader = request.getReader();
String collected = reader.lines()
        .collect(Collectors.joining(System.lineSeparator()));

第三,您似乎调用getInputStream()了两次方法,这是无法完成的。你可以在这篇文章中阅读更多关于它的信息。

于 2019-07-25T13:08:56.870 回答