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

时间:2017-12-26 21:08:03

标签: java http asynchronous request java-9

我希望异步发送请求,然后在收到响应后异步执行其他操作。到目前为止,我的代码看起来像这样:

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

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

1 个答案:

答案 0 :(得分:3)

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