我需要在playframework 2 中调用rest web服务,我需要发送一个查询参数,这是数组。在常规html中,我会发送它:
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]);
}
第一次 setQueryParamater()到来时,一切都很完美但第二次我得到 NullPointerException 和 paramMap.get(key)[i ] 不为空。这可能吗?有什么解决方法吗?
提前致谢!
答案 0 :(得分:0)
在常规html中,你需要来代表它:
GET http://host.com?a=1&a=2&a=3
使用ampershand(&amp;)分隔查询字符串中的参数而不是逗号(,)
编辑:抱歉忘记输入:就像你在循环中尝试做的那样,你不应该有同名的字段。你应该改为:
http://host.com?a1=value1&a2=value2
我不知道这是否会导致您遇到NullPointerException。但即使我不建议您更改您的实现以保持每个字段一个值(键,值)
答案 1 :(得分:0)
好吧,它似乎是play-framework中的一个bug,但在2.1版本中解决了。