Vert.x httpClient/webClient 逐块或作为流处理响应

Vert.x httpClient/webClient process response chunk by chunk or as stream

我有 vert.x 和 asyncHttpClient 的应用程序。我想用 vert.x httpClient (webClient) 替换 asyncHttpClient,但我需要能够按块或小部分数据(如 AsyncHttpClient 中的 org.asynchttpclient.AsyncHandler)或像流一样处理响应。可能吗?我查看自定义 BodyCodec,但无法理解自定义 WriteStream 中的数据流。

使用专为缓冲响应而设计的 Vert.x Web 客户端无法轻松做到这一点。

但是您可以使用 Vert.x Http 客户端执行此操作:

client.request(HttpMethod.GET, "some-uri", ar1 -> {

  if (ar1.succeeded()) {
    HttpClientRequest request = ar1.result();
    request.send(ar2 -> {
      HttpClientResponse response = ar2.result();
      response.handler(buffer -> {
        System.out.println("Received a part of the response body: " + buffer);
      });
    });
  }
});