我可以在查询参数中使用 Map<> 吗?

Can I use Map<> in query params?

我可以在查询参数中使用 Map 吗? 我有很多 REST 资源,我想在一个地方更改查询参数列表,我有这样的来源:

@GET
@Path("...")
@Produces({MediaType.APPLICATION_JSON})
public String getPath(
        @PathParam("...") String path, 
        @QueryParam("headers") Map<String, String> headers // error!

如何使用查询参数的动态列表?因为headers以后会变

根据 Oracle 关于 extracting request parameters 的文档,您应该能够使用 @Context 注释将 headers 传递到您的方法中:

@GET
@Path("...")
@Produces({MediaType.APPLICATION_JSON})
public String getPath(
    @PathParam("...") String path, 
    @Context HttpHeaders headers) {
...

然后通过 HttpHeaders 实例上的方法访问 headers 和 cookie。我没试过这个,但看起来应该可以。