编程语言
首页 > 编程语言> > java-将枚举值列表作为HTTP查询参数传递

java-将枚举值列表作为HTTP查询参数传递

作者:互联网

我想将枚举值列表作为HTTP查询参数传递.服务器端的入口点如下所示:

@GET
@Path("/getMyResult")
public MyResultType getMyResult(@QueryParam("me") final List<MyEnum> myEnums) 

无法修改.考虑MyEnum包含值MyValue1,MyValue2,MyValue3和MyValue4. (MyResultType与该问题无关.)仅传递一个值,如下所示,效果很好(这对我来说有点奇怪):

http://localhost/getMyResult?me=MyValue1

但是,以这种方式传递元素列表:

http://localhost/getMyResult?me=[MyValue1,MyValue3,MyValue4]

或者这样:

http://localhost/getMyResult?me=MyValue1,MyValue3,MyValue4

或者这样:

http://localhost/getMyResult?me=["MyValue1","MyValue3","MyValue4"]

不起作用,它会引发类似以下的异常(第一个选项的错误消息):

RESTEASY001720: Unable to extract parameter from http request: javax.ws.rs.QueryParam(\"me\") [...]
No enum constant com.mycompany.myapp.MyEnum.[MyValue1,MyValue3,MyValue4]

谁能告诉我如何将MyEnum元素列表作为HTTP GET查询参数传递?谢谢!

解决方法:

为此(以及其他情况,您需要传递列表),必须为每个元素插入参数名称.

通过这种方式:

http://localhost/getMyResult?me=MyValue1&me=MyValue3&me=MyValue4

标签:query-parameters,list,http,get,java
来源: https://codeday.me/bug/20191027/1941593.html