将数组作为查询参数发送到rest WS(nullpointerException)

将数组作为查询参数发送到rest WS(nullpointerException),rest,playframework-2.0,Rest,Playframework 2.0,我需要调用PlayFramework2中的RESTWeb服务,并需要发送一个查询参数,该参数是一个数组。在常规html中,我将发送如下内容: GET http://host.com?a=1&a=2&a=3 GET http://host.com?a=1&a=2&a=3 但是,当我尝试使用playframework 2 WS-api执行此操作时,我会执行以下操作: Map<String,String[]> paramMap = new HashMap

我需要调用PlayFramework2中的RESTWeb服务,并需要发送一个查询参数,该参数是一个数组。在常规html中,我将发送如下内容:

GET http://host.com?a=1&a=2&a=3
GET http://host.com?a=1&a=2&a=3
但是,当我尝试使用playframework 2 WS-api执行此操作时,我会执行以下操作:

Map<String,String[]> paramMap = new HashMap<String, String[]>();
paramMap.put("a",new String[]{"value1","value2"});

WS.WSRequestHolder holder = WS.url("http://host.com");

Set<String> keys = paramMap.keySet();
for (int i = 0; i < paramMap.get(key).length; i++)
{
    holder.setQueryParameter(key, paramMap.get(key)[i]);
}
SetQueryParameter第一次到达时,一切都很顺利,但第二次我得到一个NullPointerException和paramMap.getkey[I]不是null。这可能吗?有什么解决办法吗

提前谢谢

在常规html中,您需要像这样发送:

GET http://host.com?a=1&a=2&a=3
GET http://host.com?a=1&a=2&a=3
使用ampershand&分隔查询字符串中的参数而不是逗号

编辑:抱歉,忘记键入:就像你试图在循环中做的那样,你不应该有同名的字段。您应将其更改为:

http://host.com?a1=value1&a2=value2

我不知道这是否会导致你面对NullPointerException。但即使我不建议您更改您的实现,使每个字段键保留一个值,value

Ok,这似乎是play框架中的一个bug,但在2.1版本中得到了解决


哦对不起,这是真的,我就是这个意思。编辑