Estoy usando play framework en Java.
Quiero recuperar todo el cuerpo de solicitud enviado en una petición POST a la obra del servidor. ¿Cómo puedo recuperarlo?

OriginalEl autor Bourne | 2014-04-12

4 Comentarios

  1. 12

    Tomar una mirada en play.mvc.Http clase, usted tiene algunas opciones (dependiendo del formato de datos), es decir,

    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();

    Puede probar request().body().asText() es decir, utilizando la curvatura de la línea de comandos:

    curl  -H "Content-Type: text/plain" -d  'Hello world !' http://domain.com/your-post-action

    … o el uso de alguna herramienta, como complemento de navegador: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

    Quiero conseguir el raw cuerpo de cadena sin convertirlo a cualquier java específico de las estructuras de datos. ¿Cómo puedo lograr esto?
    Usted debe mirar en los mencionados clase 😛 String bodyText = request().body().asText();
    He probado esto, pero este se recupera null
    He tratado de Cadena bodyText = request().cuerpo().asText(); . Devuelve null 🙂
    Aparentemente tu post contiene decir, en lugar de texto sin formato, intente realizar la llamada a la acción – es decir, utilizando el Juego WS API o curl para ver que funciona 😉

    OriginalEl autor biesior

  2. 13

    Con Juego de Marco 2.3 es posible obtener raw json texto aún está encabezado de Tipo de Contenido es application/json

    def postMethod = Action(parse.tolerantText) { request =>
        val txt = request.body
    }
    que, en realidad, de la única respuesta correcta
    Pero no funciona en Java.
    Probablemente que ayudaría a continuación: ricardclau.com/2015/06/…

    OriginalEl autor Viktor Aseev

  3. 3

    Si usted llama el código siguiente en una solicitud;

    String bodyText = request().body().asText();

    bodyText será nula si el encabezado de Tipo de Contenido es application/json

    No existe una manera de utilizar el controlador de la Api para obtener sólo JSON de texto si el encabezado de Tipo de Contenido es application/json sin antes convertir a un JsonNode

    Así que la mejor manera de hacer esto si el application/json es su encabezado de Tipo de Contenido es

    String bodyText = request().body().asJSON().toString();

    Este es un error en el juego del marco de una parte, porque no sólo debe tener un método para obtener la solicitud de cuerpo como una Cadena, no importa lo que el encabezado de Tipo de Contenido.

    OriginalEl autor SobiborTreblinka

  4. 0

    Se dará a petición JSON cuerpo como cadena. He probado en el juego 2.6.x

    val body = request.body.asJson.get.toString()

    OriginalEl autor xrs

Dejar respuesta

Please enter your comment!
Please enter your name here