我希望异步发送请求,然后在收到响应后异步执行其他操作。到目前为止,我的代码如下所示:
httpClient.sendAsync(request, HttpResponse.BodyHandler.asString())
.thenRunAsync(() -> {});
但是,我并不完全相信 Runnable
会在请求完成后运行。这个假设正确吗?如果是这样,收到响应后我应该使用什么来正确处理响应?
最佳答案
您的假设基本上是正确的:如果 HTTP 请求成功完成(响应代码小于 400),您的 Runnable 将运行。否则,CompletableFuture 会异常完成,您可以使用其 exceptionally 来处理。方法。
关于Java 9 HttpClient : Correctly handle async response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983715/