Мне нужно восстановить всю полезную нагрузку запроса POST формы, чтобы отправить его обратно получателю (PayPal требует это как процедуру проверки). Я попробовал несколько способов, но я всегда получаю такое же предупреждение, без полезной нагрузки:Не могу получить полезную нагрузку запроса POST на Джерси
Warning: A servlet request to the URI http://localhost:8080/ipnlistener contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
Вот код слушателя
@POST
@Path("/ipnlistener")
public Response testIpn(String t) {
System.out.println(t);
return Response.ok().build();
}
Я пытался добавить разные Consumes
аннотаций, но ничего не меняется. Конечно, с аннотациями FormParam
я могу получить отдельные поля, но мне действительно нужен весь текст запроса.
Я также попытался с помощью следующей
public Response testIpn(@Context HttpServletRequest req) throws IOException {
BufferedReader reader= req.getReader();
String sCurrentLine;
while ((sCurrentLine = reader.readLine()) != null) {
System.out.println(sCurrentLine);
}
return Response.ok().build();
}
, но я получаю ошибку
getInputStream() has already been called for this request
Если у вас есть решение этой проблемы, пожалуйста, добавьте ответ. Я застрял и понятия не имею, как это решить. –