Jersey: consumir todos los datos POST en un objeto
Estoy usando Jersey 1.8 en mi aplicación. Estoy tratando de consumirPOST
Datos en el servidor. Los datos son del tipo.application/x-www-form-urlencoded
. ¿Hay un método para obtener todos los datos en un objeto, tal vez unMap<String, Object>
.
Me encontré con Jersey's@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
. Pero usar esto me requeriría usar@FormParam
, lo que puede ser tedioso si el número de parámetros es enorme. O tal vez una forma es esta:
@POST
@Path("/urienodedeample")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response uriEncodedExample(String uriInfo){
logger.info(uriInfo);
//process data
return Response.status(200).build();
}
El código anterior consume y presenta los datos del formulario en unString
objeto.
_search=false&nd=1373722302667&rows=10&page=1&sidx=email&sord=desc
Procesar esto puede ser propenso a errores como cualquier lugar fuera de lugar&
y split () devolverá datos corruptos.
Utilicé UriInfo para la mayor parte de mi trabajo, que me daba los parámetros de consultaMultiValuedMap
o para otras solicitudes POST, envió la carga útil enjson
formato que, a su vez, sería sin par en unaMap<String, Object>
. Cualquier sugerencia sobre cómo puedo hacer lo mismo si los datos POST son del tipoapplication/x-www-form-urlencoded
.