2016-05-09 8 views
0

Ich habe ein Jetty.Server.Request-Objekt, bei dem es sich um eine HTTP-Anforderung handelt, deren Nachrichtentext in mehreren Methoden verwendet werden muss.Reading Jetty Server Request-Nachrichtentext, ohne dass dieser null ist

ich Zugriff auf den Inhalt des Körpers wie so -

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

Dies scheint jedoch den Körper von der HTTP-Anforderung zu entfernen. Wenn ich dann versuche, so wieder darauf zuzugreifen -

contents2 wird null sein.

Wie kann ich den Hauptteil des Anfrageobjekts lesen, ohne die Anfrage zu beeinflussen?

+0

Mögliche Duplikate von [HTTP-Servlet-Anfrage verlieren Params von POST-Körper nach einmal gelesen] (http://StackOverflow.com/Questions/10210645/http-servlet-Request-Lose-Params-von-Post-Body-after -lesen-es-einmal) –

Antwort

0

Laut der Servlet-Spezifikation ist der Stream nur einmal verfügbar.

eine Kopie davon Machen Sie es sich (entweder in den Speicher oder zum späteren Lesen auf der Festplatte)

von Entwurf zu handhaben würde, so viele Anfrage Körper kann durch recht groß und es einfach nicht genügend Arbeitsspeicher liest wieder vernünftig.

Seien Sie sicher, dass Sie die früheren Antworten auf diese Besuche:

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

Als solche Antwort zeigen ein paar Möglichkeiten, mehrere liest der gleichen Anfrage Körper zu erreichen.

+0

Zum! Schätze die Informationen. Ich nehme an, ich schreibe es in eine Datei. Vielen Dank! –

+0

Können Sie die Dokumentation für mich verlinken? Dies könnte für andere Fragen, die ich habe, nützlich sein. –