Java 9 HttpClient:正确处理异步响应

Java 9 HttpClient: Correctly handle async response

我希望异步发送请求,然后在收到响应后异步执行其他操作。到目前为止,我的代码如下所示:

httpClient.sendAsync(request, HttpResponse.BodyHandler.asString())
          .thenRunAsync(() -> {});

但是,我并不完全相信 Runnable 会在请求完成后 运行。这个假设是否正确?如果是这样,我应该使用什么来正确处理收到的响应?

您的假设大部分是正确的:如果 HTTP 请求成功完成(响应代码小于 400),您的 Runnable 将 运行。否则,CompletableFuture 异常完成,您可以使用其 exceptionally 方法处理。