我正在构建一个通用的Web服务,需要将所有查询参数都放入一个字符串中,以便以后进行解析。我怎样才能做到这一点?
Answers:
您可以@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");
}
关键是@Context
jax-rs批注,可用于访问:
UriInfo,请求,HttpHeaders,SecurityContext,提供程序
在接受的答案中添加更多内容。也可以通过以下方式获取所有查询参数,而无需向该方法添加其他参数,这在维护草率文档时可能很有用。
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}