Получить строку Raw Request из HttpServletRequest

Можно ли получить необработанный HTTP-запрос из объекта HttpServletRequest? Я хочу видеть необработанный запрос как String, если это вообще возможно.

Мне нужно получить полный текст запроса, в этом случае это запрос POST, поэтому URL-адрес не поможет. Он также является частью многочастной формы, поэтому я не могу просто вызвать "getParameterNames()" или "getParameterValues ​​()".

Спасибо,

Ответы

Ответ 2

Вы можете прочитать необработанный HTTP-запрос, выполнив:

ServletInputStream in = request.getInputStream();

а затем используйте обычные методы read для InputStream.

Надеюсь, что это поможет.

Ответ 3

Ну, похоже, вы делаете какие-то способы устранения неполадок. Почему бы просто не отбросить компонент формы из нескольких частей, пока вы смотрите на данные необработанной формы. Вы можете использовать следующий фрагмент JSP для создания данных формы.

<%
Enumeration en = request.getParameterNames();
String str = "";
while(en.hasMoreElements()){
   String paramName = (String)en.nextElement();
   String paramValue = request.getParameter(paramName);
   str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue);
}
if (str.length()>0)
   str = str.substring(1);
%>

Ответ 4

или если вы можете написать некоторый перехватчик, чтобы преобразовать имена и значения параметров в объект строкового формата и установить его в контексте запроса, или фильтр также является хорошей идеей.

Ответ 5

Если вы хотите получить весь запрос к String, вы можете сделать это с помощью одной строки кода, используя библиотеку apache IOUtils.

String myString = org.apache.commons.io.IOUtils.toString(request.getInputStream());