Estoy tratando de implementar una API REST con Play 2.0 (Scala) pero me estoy quedando atrapado en el método POST. ¿Cómo obtengo la carga del objeto Solicitud? No he encontrado ninguna documentación al respecto y no he podido descifrar el código fuente.Cómo obtener la carga de un POST en Play 2.0
Respuesta
Usted debe ser capaz de hacer los siguientes:
def index = Action { request =>
val body = request.body
}
Y también cosas como:
def index = Action { request =>
val name = request.queryString.get("name").flatMap(_.headOption)
Ok("Hello " + name.getOrElse("Guest"))
}
¡Gracias, funciona! He puesto un 'println (request.body)' y estoy obteniendo cosas como 'AnyContent (Map (body -> WrappedArray (pepe), pepe -> WrappedArray (null)))', que parece un buen comienzo . – jglatre
tuviera que hacerlo de manera algo diferente (tal vez estoy en una versión más reciente del código base):
mi javascript:
$(document).ready(function(){
$.post("/ping", {one: "one", two: "two" },
function(data){
console.log(data); //returns {"one":"one","two":"two"}
})
});
mi ruta:
POST /ping controllers.Application.ping()
Mi método controlador:
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))))
)
}
supongo que esto cambiará en la versión final.
echar un vistazo a this article en playlatam
también comprobar this question en Google lista
para Java (con una java_name nombres param):
String name = request().body().asFormUrlEncoded().get("java_name")[0];
de Scala (con un scala_name nombres param):
def name = request.body.asFormUrlEncoded.get("scala_name")(0)
¡Gracias por los enlaces! – jglatre
H ere es lo que hice.
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. (Play 2.0) Establecer el tamaño máximo de POST para AnyContent
- 2. ¿Cómo hacer un binario con play 2.0?
- 3. ¿Cómo uso Play Framework 2.0 en netbeans
- 4. play-framework [2.0] HTTPS
- 5. Cómo contribuir módulos en Play Framework 2.0?
- 6. Play Framework 2.0: Formateadores personalizados
- 7. URL localizadas en Play 2.0?
- 8. Prueba MultipartFormData en Play 2.0 FakeRequest
- 9. Play 2.0 Captcha
- 10. Juego 2.0 + Java vs. Play 2.0 + Scala?
- 11. Usos de CDN en Play 2.0
- 12. Cómo mejorar la velocidad de compilación de Play Framework 2.0
- 13. ¿Cómo configurar PostgreSQL para Play 2.0?
- 14. Gestión de dependencias con aplicaciones Play 2.0
- 15. Cómo obtener la dirección IP del cliente en Play! marco 2.0?
- 16. Cómo usar OAuth 2 en Play Framework 2.0
- 17. play framework 2.0 - internacionalización - cómo traducir un mensaje
- 18. Comprender la creación de la página "Bienvenido a Play 2.0"
- 19. ¿Dónde está session.id en Play 2.0?
- 20. Dependencias de Play 2.0 y SNAPSHOT
- 21. Uso de Eclipse con Play Framework 2.0
- 22. Ejecutando evoluciones en Play Framework 2.0
- 23. ¡Prueba de carga en Play! marco
- 24. scala play 2.0 get request header
- 25. ¿Cómo implementar una aplicación Play 2.0 en Debian?
- 26. play framework 2.0 error de consola
- 27. Carga de archivo JSF 2.0
- 28. ¿Cómo se obtiene el tamaño de una Solicitud en Play 2.0.x?
- 29. Cron Job in play framework 2.0
- 30. URL para la consola H2 DB en Play! 2.0
Este acceso chico mensaje por la unión de la URL con el verbo HTTP y es entonces capaz de acceder a su objeto directamente: http://www.jamesward.com/2011/12/11/tutorial-play-framework- jpa-json-jquery-heroku –
@ user309483 Por el momento, no necesito ningún enlace implícito de la carga a los frijoles, de todos modos, gracias por el enlace, puede ser útil :) – jglatre