我希望异步发送请求,然后在收到响应后异步执行其他操作。到目前为止,我的代码看起来像这样:
httpClient.sendAsync(request, HttpResponse.BodyHandler.asString())
.thenRunAsync(() -> {});
但是,我并不完全相信Runnable
会在请求完成后运行。这个假设是否正确?如果是这样,一旦收到响应,我应该用什么来正确处理响应呢?
答案 0 :(得分:3)
您的假设大多正确:如果HTTP请求成功完成(响应代码小于400),您的Runnable将运行。否则,CompletableFuture会异常完成,您可以使用exceptionally方法处理。