Sto cercando di implementare un'API REST con Play 2.0 (Scala) ma mi sto bloccando nel metodo POST. Come ottengo il payload dall'oggetto Request? Non ho trovato alcuna documentazione su di esso e non sono stato in grado di capire dal codice sorgente.Come ottenere un payload da un POST in Play 2.0
risposta
Si dovrebbe essere in grado di fare le seguenti:
def index = Action { request =>
val body = request.body
}
E anche le cose come:
def index = Action { request =>
val name = request.queryString.get("name").flatMap(_.headOption)
Ok("Hello " + name.getOrElse("Guest"))
}
Grazie, funziona! Ho messo un 'println (request.body)' e sto ottenendo cose come 'AnyContent (Map (body -> WrappedArray (pepe), pepe -> WrappedArray (null))', che sembra un buon inizio . – jglatre
ho dovuto farlo un po 'diverso (forse sono su una versione più recente del codebase):
mio javascript:
$(document).ready(function(){
$.post("/ping", {one: "one", two: "two" },
function(data){
console.log(data); //returns {"one":"one","two":"two"}
})
});
il mio percorso:
POST /ping controllers.Application.ping()
Il mio metodo di controllo:
def ping() = Action{ request =>
val map : Map[String,Seq[String]] = request.body.asFormUrlEncoded.getOrElse(Map())
val one : Seq[String] = map.getOrElse("one", List[String]())
val two : Seq[String] = map.getOrElse("two", List[String]())
Ok(
toJson(JsObject(List("one"->JsString(one.first), "two"->JsString(two.first))))
)
}
Presumo che ciò cambierà nella versione finale.
uno sguardo al this article su playlatam
controllare anche this question su google lista
per Java (con un java_name nomi param):
String name = request().body().asFormUrlEncoded().get("java_name")[0];
per Scala (con uno scala_name nomi param):
def name = request.body.asFormUrlEncoded.get("scala_name")(0)
Grazie per i collegamenti! – jglatre
H ecco cosa ho fatto
val map : Map[String,Seq[String]] = request.body
val seq1 : Seq[String] = map.getOrElse("socket_id", Seq[String]())
val seq2 : Seq[String] = map.getOrElse("channel_name", Seq[String]())
val socketId = seq1.head
val channelName = seq2.head
- 1. Come ottenere un subArray da Swift 2.0
- 2. associare più oggetti in Play Framework 2.0 da un modulo
- 3. Come definire un tag con Play 2.0?
- 4. Stripping payload da un tcpdump?
- 5. Come scaricare un file con Play Framework 2.0
- 6. Come ottenere l'indirizzo IP del client in Play! quadro 2.0?
- 7. Invio richiesta POST all'API di Twitter con Play Framework 2.0
- 8. Angularjs + OAuth + Play 2.0
- 9. Richieste Python - dati POST da un file
- 10. Come utilizzare Play Framework 2.0 in netbeans
- 11. play-framework [2.0] HTTPS
- 12. URL localizzati in Play 2.0?
- 13. Request.params è andato in Play Framework 2.0
- 14. play framework 2.0 - internazionalizzazione - come tradurre un messaggio
- 15. Come testare l'app di esempio Zentasks da Play 2.0
- 16. Test MultipartFormData in Play 2.0 FakeRequest
- 17. Impostazione di un URL principale personalizzato in Play 2.0
- 18. Evoluzioni in esecuzione su Play Framework 2.0
- 19. Come ottenere post lumaca da post in wordpress?
- 20. Manca il comando 'debug' da Play 2.0 installato da Typesafe
- 21. Che cos'è un "Payload"? ad esempio Payload XML
- 22. Usi CDN su Play 2.0
- 23. Ottenere un'app Play/SBT per dipendere da un Maven POM
- 24. Play Framework 2.0 pianifica un Akka Actor all'avvio dal server
- 25. Play Framework 2.0: formattatori personalizzati
- 26. Come accedere ai dati dei post da scala play?
- 27. Come testare le azioni che prevedono un file caricato in Play Framework (versione 2.0, utilizzando Scala)?
- 28. Come utilizzare OAuth 2 in Play Framework 2.0
- 29. Play Framework 2.0 - dov'è jsAction?
- 30. play framework 2.0 routing inverso
Questo post l'accesso ragazzo legando l'URL al verbo HTTP ed è quindi in grado di accedere direttamente suo oggetto: http://www.jamesward.com/2011/12/11/tutorial-play-framework- jpa-json-jquery-heroku –
@ user309483 Al momento, non ho bisogno di alcun legame implicito dal carico utile ai fagioli, comunque, grazie per il collegamento, potrebbe essere utile :) – jglatre