Ich benutze Play-Framework in Java. Ich möchte den gesamten Anfragekörper abrufen, der in einer POST-Anfrage an den Play-Server gesendet wurde. Wie kann ich es abrufen?Abrufen der Anfrage Body-Zeichenfolge in POST-Anfrage in Play-Framework gesendet Java
Antwort
einen Blick in play.mvc.Http
Klasse nehmen, haben Sie einige Optionen gibt (je nach Datenformat), dh
RequestBody body = request().body();
MultipartFormData formData = request().body().asMultipartFormData();
Map<String, String[]> params = request().body().asFormUrlEncoded();
JsonNode json = request().body().asJson();
String bodyText = request().body().asText();
Sie request().body().asText()
dh cUrl von Kommandozeile testen können:
curl -H "Content-Type: text/plain" -d 'Hello world !' http://domain.com/your-post-action
... oder mit einem Tool, wie Browser-Plugin: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
Wenn Sie den folgenden Code auf eine Anfrage aufrufen;
String bodyText = request().body().asText();
bodytext wird null sein, wenn der Content-Type-Header Anwendung ist/json
Es gibt keine Möglichkeit, die bereitgestellten Controller-APIs nur Text JSON zu erhalten, wenn der Content-Type-Header-Anwendung ist/json ohne erste
So ist die beste Weg, dies zu einer JsonNode Umwandlung zu tun, wenn die Anwendung/json Ihre Content-Type-Header ist
String bodyText = request().body().asJSON().toString();
Dies ist ein auf ausfall spielen Framework-Teil, weil sie nur eine Methode haben sollten, um den Anfragetext als String zu erhalten, egal was der Content-Type-Header ist.
Mit dem Play-Framework 2.3 ist es möglich, sogar roh json Text zu bekommen, ist Content-Type-Header application/json
def postMethod = Action(parse.tolerantText) { request =>
val txt = request.body
}
- 1. Größe der HTTP-Antwort in Java abrufen
- 2. Http.Context in playframework Filter
- 3. Browsergebietsschema in Playframework
- 4. Playframework Java Validierungsproblem
- 5. playframework java asynchroner Methodenaufruf
- 6. Test WebSocket in PlayFramework
- 7. Playframework Scala Async-Controller für JSON Anfrage
- 8. Abrufen einer Datei von einer http-Anfrage in Java
- 9. PlayFramework-Anfrage an Google Places API
- 10. Planen von asynchronen Aufgaben in PlayFramework 2.5.X (Java)
- 11. posten XML-Anfrage in Java
- 12. Akka-Version in Playframework
- 13. PlayFramework 2.2 Java Action-Komposition
- 14. Nur wenige HTTP-Header für die Anfrage über Java gesendet
- 15. Playframework-Einstellungen in Abhängigkeit von der Umgebung
- 16. Dateipfad in Java abrufen
- 17. Wie http http mit einer leeren Körper Anfrage mit WS API in Playframework 2/Scala post?
- 18. Abrufen der Datei von der POST-Anfrage mit Pythons BaseHTTPServer
- 19. Abrufen der Anfrage Daten von URI in Webview Windows 8.1
- 20. PlayFramework Art von Middleware
- 21. Geschichte Tabellen - Ebean ORM Java PlayFramework
- 22. playframework JsValue in HTML Vorlage
- 23. HTTP-Anfrage in Java analysieren
- 24. Anfrage SPARQL in Java (Jena)
- 25. Cookie nicht gesendet mit JSONP-Anfrage in IE
- 26. HTTP-GET-Anfrage in Java
- 27. Anfrage von Javascript in Java
- 28. dynamischer Aktionsname in playframework 2.0
- 29. enthalten umgebungsspezifische Datei in playframework
- 30. Benutzerdefinierter Router in Playframework 2.4
ich will, ist die Rohkarosse Zeichenfolge erhalten, ohne es zu jeder Java-spezifische Datenstrukturen zu konvertieren. Wie kann ich das erreichen? – Bourne
Sie sollten in besagte Klasse suchen: P 'String bodyText = request(). Body(). AsText();' – biesior
Ich habe dies versucht, aber das ruft null – Bourne