【问题标题】:Java QueryParam with key and value in the same parameterJava QueryParam 具有相同参数中的键和值
【发布时间】:2016-03-16 15:48:28
【问题描述】:

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

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

两个问题:

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

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

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

【问题讨论】:

    标签: java url jersey url-parameters


    【解决方案1】:

    是的。 Jersey 可以处理它,即使 key 和 value 之间的 = 没有编码。如果查询参数是 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 为您完成此转换。

    参考

    【讨论】:

    • 这回答了我的第一个问题。你对我的第二个问题有什么见解吗?
    猜你喜欢
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    相关资源
    最近更新 更多