Я пытаюсь получить данные post на Java. Похоже, это должно быть одной из самых простых вещей, чтобы сделать правильно? Я имею в виду, что HttpServletRequest.getParameter должен делать это правильно? Итак, как вы можете получить исходные данные?
Я нашел HttpServletRequest получить данные JSON POST и использовал код Kdeveloper, чтобы вытащить данные сообщения из запроса. Он работает, но theres catch: я могу получить только данные после этого.
Вот метод, который я сделал из кода Kdeveloper:
public static String getPostData(HttpServletRequest req) {
    StringBuilder sb = new StringBuilder();
    try {
        BufferedReader reader = req.getReader();
        reader.mark(10000);
        String line;
        do {
            line = reader.readLine();
            sb.append(line).append("\n");
        } while (line != null);
        reader.reset();
        // do NOT close the reader here, or you won't be able to get the post data twice
    } catch(IOException e) {
        logger.warn("getPostData couldn't.. get the post data", e);  // This has happened if the request reader is closed    
    }
    return sb.toString();
}
Раньше я закрывал читателя в конце этого метода, но это вызывало исключения, когда метод запускался более одного раза с тем же запросом. Без его закрытия никаких исключений не происходит, но метод возвращает пустую строку.
Честно говоря, должен быть только открытый метод req.getPostData() - никто не думал, что это будет полезно?
Итак, как я могу написать этот метод, чтобы он всегда возвращал правильные данные сообщения?