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

2022-08-31 10:50:11

我正在构建一个通用的Web服务,需要将所有查询参数抓取到一个字符串中,以便以后解析。我该怎么做?


答案 1

您可以通过上下文访问单个参数或所有参数:@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");
}

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

UriInfo, Request, HttpHeaders, SecurityContext, Providers


答案 2

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

@GET
public Representation get(@Context UriInfo uriInfo) {
  String query = uriInfo.getRequestUri().getQuery();
  ...
}

推荐