【问题标题】:How to send request parameters with same parameter-name如何发送具有相同参数名称的请求参数
【发布时间】:2014-04-07 11:18:34
【问题描述】:

这个问题是对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 在setQueryParameter 方法中接受Map<String, String>,我无法发送同名的参数列表。

我可以使用多个名为“values”的参数从 POSTMAN 发送请求,并且工作正常。

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

提前致谢。

【问题讨论】:

    标签: java web-services playframework-2.1


    【解决方案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() 获取响应正文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2010-12-22
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多