从 Java 中的 CompletionStage 中获取价值

2022-09-03 05:19:31

我正在使用play2.5和java 8。我正在向服务器发出开机自检请求

WSRequest request = ws.url("http://abababa .com");
WSRequest complexRequest = request.setHeader("X-API-Key", "xxxxxx")
            .setHeader("Content-Type", "application/x-www-form-urlencoded")
CompletionStage<WSResponse> responsePromise = complexRequest.post("grant_type=password"
            + "&username=xxxxx&password=yyyyy");
CompletionStage<JsonNode> jsonPromise = responsePromise.thenApply(WSResponse::asJson);

如何打印响应的最终响应。我想将部分响应返回到此函数。与同步代码相比,调用此函数的函数是否也应该具有不同的代码?


答案 1

jsonPromise.toCompletableFuture().get()


答案 2
JsonNode jsonData = jsonPromise.toCompletableFuture().get()

我尝试了上面的代码,但我得到编译器错误,返回JsonNode数据,然后我使用

JsonNode jsonData = jsonPromise.toCompletableFuture().join()

它工作正常