Java 9 HttpClient : Correctly handle async response

标签 java http asynchronous request java-9

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

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/

相关文章:

performance - Ping 功能使整个 Excel 表变慢/无响应

java - XPath 编译行为

java - 在java中编辑图像

java - jparepository 未在服务中自动连接

apache - 为什么 apache 接受这个无效的范围请求?

c - Linux内核异步AIO : do I need to copy over the struct iovec for later processing?

Java:可以通过 SSLSocket 发送任何字符串,但以 h/H 开头的字符串除外

ruby-on-rails - 在 Rails 中,如何记录每个传入 HTTP 请求的全部内容?

http - 检测服务器上的 HTTP 请求失败

asynchronous - Fsharpx Async.AwaitObservable 不调用取消继续