2016-05-09 4 views
0

У меня есть объект Jetty.Server.Request, который является HTTP-запросом, тело которого мне нужно использовать несколькими способами.Чтение Jetty Server Request body без его получения

I доступ к содержимому тела, как так -

String contents = baseRequest.getReader().readLine(); 

Однако, это, кажется, удалить тело из запроса HTTP. Если я затем попытаюсь получить к нему доступ так же -

String contents2 = baseRequest.getReader().readLine(); 

содержание2 будет пустым.

Как я могу прочитать тело объекта запроса, не затрагивая запрос?

+0

Возможный дубликат запроса [Http Servlet теряет параметры из тела POST после его чтения один раз] (http://stackoverflow.com/questions/10210645/http-servlet-request-lose-params-from-post-body-after -read-it-once) –

ответ

0

По спецификации сервлета поток доступен только один раз.

Сделайте копию этого самостоятельно (либо в памяти, либо на диске для последующего чтения)

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

Убедитесь, что вы проверить предыдущие ответы на это:

Http Servlet request lose params from POST body after read it once

В тех ответ демонстрируют несколько способов выполнить несколько операций чтения одного и того же тела запроса.

+0

Zut! Оцените информацию. Полагаю, я напишу его в файл. Спасибо! –

+0

Можете ли вы связать документацию для меня? Это может быть полезно для других вопросов, которые у меня есть. –