Java QueryParam与键和值在同一参数中

时间:2015-12-10 20:54:27

标签: java url jersey url-parameters

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

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

两个问题:

  • 我不确定上面的示例是否有用,我假设您必须在键和值之间编码=符号。这是对的吗?
  • 有没有更好或更标准的方法来解决这个问题?

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

到目前为止,我已经尝试过多次谷歌查询但尚未找到答案:

1 个答案:

答案 0 :(得分:1)

是。泽西可以处理它,即使=密钥和值之间没有编码。如果查询参数是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为你做这个转换。

参考