Genel bir web hizmeti oluşturuyorum ve tüm sorgu parametrelerini daha sonra ayrıştırmak için tek bir dizede toplamam gerekiyor. Bunu nasıl yapabilirim?
Yanıtlar:
@QueryParam("name")
Bağlam aracılığıyla tek bir parametreye veya tüm parametreler aracılığıyla erişebilirsiniz:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
Anahtar, @Context
şunlara erişmek için kullanılabilen jax-rs ek açıklamasıdır :
UriInfo, Request, HttpHeaders, SecurityContext, Providers
Adding a bit more to the accepted answer. It is also possible to get all the query parameters in the following way without adding an additional parameter to the method which maybe useful when maintaining swagger documentation.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}