如何使用相同的参数名发送请求参数

这个问题是如何在Play 2.1 Java中为WS.post()设置params的扩展

我的Web服务请求处理程序如下

@POST @Path("/requestPath") public String addChallengersToLeague( @FormParam("name") String name, @FormParam("values") List values); 

由于WSRequestHolder在setQueryParameter方法中接受MapsetQueryParameter我无法发送具有相同名称的参数列表。

我可以发送POSTMAN的请求,其中有多个参数名称为’values’,并且工作正常。

你能建议如何使用游戏来做同样的事情吗? 我正在使用游戏2.1.3

提前致谢。

这可以使用play.libs.WS.WSRequest API完成

以下是一个简单的例子

 WSRequest request = new WSRequest(""); //Method can be GET, POST etc request.setUrl(""); request.setHeader("Content-Type", "application/x-www-form-urlencoded"); com.ning.http.client.FluentStringsMap map = new com.ning.http.client.FluentStringsMap(); map.add("name", "aniket"); Set values= new HashSet(); values.add("1"); values.add("2"); values.add("3"); values.add("4"); map.add("values", values); request.setQueryParameters(map); Promise response = request.execute(); 

然后,您可以使用response.get().getBody()来获取响应正文。