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

时间:2014-04-07 11:18:35

标签: java web-services playframework-2.1

此问题是How do I set params for WS.post() in play 2.1 Java的扩展

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

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

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

我可以发送POSTMAN的请求,其中包含多个名称为&#39;值的参数,并且工作正常。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

来完成

以下是一个简单的例子

WSRequest request = new WSRequest("<Method>"); //Method can be GET, POST etc
request.setUrl("<service-url>");
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<String> values= new HashSet<String>();
values.add("1");
values.add("2");
values.add("3");
values.add("4");

map.add("values", values);

request.setQueryParameters(map);

Promise<Response> response = request.execute();

然后,您可以使用response.get().getBody()获取回复正文。