Java Key 和 Value 在同一参数中的 QueryParam

Java QueryParam with key and value in the same parameter

我正在创建一个接收字符串列表作为参数的端点(使用 Jersey 注释)。字符串需要包含一个键和一个值。 所以在 url 上它看起来像

?params=key1=value1&params=key2=value2&params.... 

两个问题:

显然,最标准的方法是让 RHS 成为键,等号的 LHS 成为值。问题是我不想在我的方法签名中定义每个可能的键值对。我想接受键和值的一般列表,并让用户传入与其查询相关的键值对。

到目前为止,我已经尝试了几个 google 查询但没有找到答案:

是的。 Jersey 可以处理它,即使键和值之间的 = 不是 encoded.If 查询参数是 params=key1=value1&params=key2=value2 ,下面的参数列表将是 [key1=value1, key2=value2]

@GET
public Response q34211549(@QueryParam("params") List<String> params) {
    //parse params list and convert it into key and value
}

您也可以考虑创建一个 ParamConverter 让 Jersey 为您做这个转换。

参考