Estoy construyendo un servicio web genérico y necesito reunir todos los parámetros de consulta en una cadena para analizarlos posteriormente. ¿Cómo puedo hacer esto?
91
Puede acceder a un solo parámetro a través de @QueryParam("name")
o todos los parámetros a través del contexto:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
La clave es la @Context
anotación jax-rs , que se puede utilizar para acceder a:
UriInfo, Solicitud, HttpHeaders, SecurityContext, Proveedores
La parte de consulta sin analizar del URI de solicitud se puede obtener del
UriInfo
objeto:fuente
Añadiendo un poco más a la respuesta aceptada. También es posible obtener todos los parámetros de consulta de la siguiente manera sin agregar un parámetro adicional al método que puede ser útil al mantener la documentación de swagger.
árbitro
fuente