Je construis un service Web générique et j'ai besoin de saisir tous les paramètres de requête dans une chaîne pour une analyse ultérieure. Comment puis-je faire ceci?
Réponses:
Vous pouvez accéder à un seul paramètre via @QueryParam("name")
ou à tous les paramètres via le contexte:
@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 clé est l' @Context
annotation jax-rs , qui peut être utilisée pour accéder:
UriInfo, Request, HttpHeaders, SecurityContext, Fournisseurs
Ajout d'un peu plus à la réponse acceptée. Il est également possible d'obtenir tous les paramètres de requête de la manière suivante sans ajouter de paramètre supplémentaire à la méthode, ce qui peut être utile lors de la maintenance de la documentation swagger.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}