J'essaie d'implémenter une API REST avec Play 2.0 (Scala) mais je suis coincé dans la méthode POST. Comment puis-je obtenir la charge utile de l'objet Demande? Je n'ai trouvé aucune documentation à ce sujet et j'ai été incapable de comprendre à partir du code source.Comment obtenir la charge utile d'un POST dans Play 2.0
Répondre
Vous devriez pouvoir effectuer les opérations suivantes:
def index = Action { request =>
val body = request.body
}
Et aussi des choses comme:
def index = Action { request =>
val name = request.queryString.get("name").flatMap(_.headOption)
Ok("Hello " + name.getOrElse("Guest"))
}
Merci, ça marche! J'ai mis un 'println (request.body)' et je reçois des choses comme 'AnyContent (Carte (corps -> WrappedArray (pepe), pepe -> WrappedArray (null)))', qui semble être un bon début . – jglatre
je devais le faire un peu différemment (peut-être que je suis sur une version plus récente du codebase):
mon javascript:
$(document).ready(function(){
$.post("/ping", {one: "one", two: "two" },
function(data){
console.log(data); //returns {"one":"one","two":"two"}
})
});
ma route:
POST /ping controllers.Application.ping()
Ma méthode de commande:
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))))
)
}
Je suppose que cela va changer dans la version finale.
un coup d'oeil à this article sur playlatam
vérifier également this question sur la liste google
pour java (avec un nom de param java_name):
String name = request().body().asFormUrlEncoded().get("java_name")[0];
pour scala (avec un nom de param scala_name):
def name = request.body.asFormUrlEncoded.get("scala_name")(0)
Merci pour les liens! – jglatre
H C'est ce que j'ai fait.
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. Caractère redondant dans la charge utile POST
- 2. Comment obtenir une charge utile TaskQueue?
- 3. Rails 2.3.9 POST charge utile manquante
- 4. Comment http $ post avec charge utile dans les données?
- 5. Enregistrement de la charge utile des POST sur Tomcat
- 6. Le service REST n'obtient pas la charge utile POST
- 7. POSTing charge utile inaltérée
- 8. Comment obtenir l'adresse IP du client dans Play! cadre 2.0?
- 9. Post-demande en utilisant la charge utile de la demande dans scrapy
- 10. Firefox addon sdk Demande module méthode POST avec charge utile
- 11. Sous-domaines dans Play 2.0
- 12. HTTP POST authentifié avec charge utile XML utilisant Python urllib2
- 13. charge utile JSON avec POST à Laravel méthode de magasin
- 14. RESTful sur Play! 2.0 Framework
- 15. Substituer la charge utile d'Astoria?
- 16. comment rediriger une charge utile HTTP?
- 17. Performances de la charge utile dans Lucene
- 18. URL localisées dans Play 2.0?
- 19. charge utile dans le paquet
- 20. Angularjs + OAuth + Play 2.0
- 21. Obtenir la licence à partir de l'ID de charge utile
- 22. Play Framework 2.0: Formateries personnalisées
- 23. play-framework [2.0] HTTPS
- 24. Comment écraser la charge utile dans une mule
- 25. Dans Ruby on Rails, comment obtenir la charge utile de la requête sans métadonnées
- 26. Scoring de charge utile Lucene
- 27. Éviter la resoumission de formulaire dans Play Framework 2.0
- 28. 2.0 audio play framework en streaming
- 29. asp.net MVC 3 - charge utile lecture POST dans la méthode de commande paramterized
- 30. Comment invoquer des méthodes HTTP non-GET/POST dans Play?
Ce poste d'accès type en liant l'URL du verbe HTTP et est alors en mesure d'accéder à son objet directement: http://www.jamesward.com/2011/12/11/tutorial-play-framework- jpa-json-jquery-heroku –
@ user309483 Pour l'instant, je n'ai pas besoin de liaison implicite de la charge utile aux beans, de toute façon, merci pour le lien, ça peut être utile :) – jglatre