如何获取Jersey JaxRS中的所有查询参数?

Tom*_*Tom 89 java jax-rs jersey

我正在构建一个通用的Web服务,需要将所有查询参数都抓取到一个字符串中以便以后解析.我怎样才能做到这一点?

his*_*ess 157

您可以@QueryParam("name")通过上下文通过或所有参数访问单个参数:

@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
     MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters(); 
     String nameParam = queryParams.getFirst("name");
}
Run Code Online (Sandbox Code Playgroud)

关键是@Context jax-rs注释,可用于访问:

UriInfo,Request,HttpHeaders,SecurityContext,Providers


gle*_*rup 33

可以从UriInfo对象获取请求URI的未解析的查询部分:

@GET
public Representation get(@Context UriInfo uriInfo) {
  String query = uriInfo.getRequestUri().getQuery();
  ...
}
Run Code Online (Sandbox Code Playgroud)