Abrufen von Anforderungsnutzdaten von einer POST-Anforderung in Java-Servlet
Habe ich eine javascript-Bibliothek, die das senden einer POST-Anforderung an meine Java-servlet, aber in der doPost
Methode, ich kann nicht scheinen, um den Inhalt der Anfrage-payload. In den chrome-Developer-Tools, der gesamte Inhalt in der Anfrage-Payload-Abschnitt in der Header-Registerkarte, und der Inhalt ist es, und ich weiß, dass die POST ist, erhielt durch die doPost-Methode, aber es kommt nur bis leer.
Für die HttpServletRequest
Objekt, welche Art und Weise bekomme ich die Daten in die Anfrage-payload?
Tun request.getParameter()
oder request.getAttributes()
beide enden mit keine Daten
InformationsquelleAutor der Frage Fasih Awan | 2013-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
getReader()
zu Lesen, die Körper der AnfrageInformationsquelleAutor der Antwort davidfrancis
Mit dieser Methode
InformationsquelleAutor der Antwort Adrian Ayala Torres
Können Sie Puffer-Leser von der Anfrage zu Lesen
InformationsquelleAutor der Antwort Fizer Khan
Java 8 streams
InformationsquelleAutor der Antwort bbviana
Mit Apache Commons IO Sie können dies tun, in einer Linie.
InformationsquelleAutor der Antwort Diji Adeyemo
Wenn der Inhalt des body ein string in Java 8, die Sie tun können:
String body = request.getReader().lines().collect(Collectors.joining());
InformationsquelleAutor der Antwort Lloyd Rochester
Verwendung von Java 8 versuchen mit Ressourcen:
InformationsquelleAutor der Antwort Timothy Heider
Brauchen Sie nur
für das POST-und GET - Parametern.
Die Methode gibt eine
Map<String,String[]>
.Lesen Sie die Parameter in der Karte von
InformationsquelleAutor der Antwort Arol
Wenn Sie sind in der Lage, zum senden der Nutzdaten in JSON, dies ist ein bequemer Weg, um Lesen Sie den playload:
Beispiel Daten-Klasse:
Beispiel Nutzlast (request-body):
Code zu Lesen Nutzlast in servlet (erfordert ein com.google.gson.*):
Das ist alles. Schön, einfach und sauber. Vergessen Sie nicht, die content-type-header application/json.
InformationsquelleAutor der Antwort Harry Developer