从 Play Framework 更改 WS API! 2.4 至 2.5

Posted

技术标签:

【中文标题】从 Play Framework 更改 WS API! 2.4 至 2.5【英文标题】:Changing WS API from Play Framework! 2.4 to 2.5 【发布时间】:2016-05-10 13:23:47 【问题描述】:

使用 Playframework! 2.5 WS 请求的结果现在是CompletionStage<WSResponse>

CompletionStage <WSResponse> completionStage = ws.url("http://url/enewsletter/signupAuto.aspx")
            .setRequestTimeout(2500)
            .setQueryParameter("email", user.getEmail())
            .get();
CompletionStage <String> resultPromise = completionStage.thenApply(WSResponse::getBody);

//String result = responsePromise.get(2500).getBody();
String result = ""; // ?????

在使用F.Promise&lt;WSReponse&gt; 之前,我可以很容易地从promise 中获得结果,但我不知道如何使用CompletionStage 获得结果。在继续程序之前,我需要处理结果。

我喜欢这个结果的原因是这个函数是在一个“for”循环中执行的,收集信息然后返回。

【问题讨论】:

【参考方案1】:

我想我在以下位置找到了它:

completionStage.toCompletableFuture();

【讨论】:

这里有一个通用的迁移指南:playframework.com/documentation/2.5.x/JavaMigration25 和 playframework.com/documentation/2.5.x/api/java/play/libs/… 在弃用中提供了说明使用哪些方法的说明。

以上是关于从 Play Framework 更改 WS API! 2.4 至 2.5的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Play Framework 的 WS API 中获取 POST 请求对象或 URL 字符串?

Play Framework 中的 SSL 导致“常规 SSLEngine 问题”。 (nginx)

Play Framework:如何不查看文件夹以了解 Play Framework 中的更改

Play Framework 2.1 - 找不到隐式 ExecutionContext

我们如何更改 Play Framework 内部使用的 EHCache 版本?

测试期间可以在 Play Framework 中启用 HTTPS 侦听吗?