Я пытаюсь определить, есть ли в http-запросе тело, не читая его или не делая ничего, что не позволяет существующему коду делать с ним все, что он делает позже в потоке.
boolean hasBody(HttpServletRequest http) {
boolean hasBody = false;
try {
hasBody = http.getInputStream() != null; // always gives true
hasBody = http.getReader().ready(); // always gives IllegalStateException
} catch (IOException e) {
}
return hasBody;
}
К сожалению обе проверки, которые я мог придумать, не работают, когда я проверяю их как GET и как POST с телом.
Обратите внимание, я не хочу делать: "POST".equals(http.getMethod())
или !"GET".equals(http.getMethod())
, если это возможно, потому что я не уверен, какие методы могут быть с телом или без него.