@Override
    public CompletableFuture<HttpResponse<AsyncBody>> consumeBytesDirect(
            StandardHttpRequest request, AsyncBody.Consumer<List<ByteBuffer>> consumer) {
        final HttpRequest armeriaRequest = toArmeriaRequest(request);
        RequestOptions requestOptions = RequestOptions.of();
        if (request.getTimeout() != null) {
            requestOptions = RequestOptions.builder()
                                           .responseTimeout(request.getTimeout())
                                           .build();
        }

        final SplitHttpResponse splitResponse;
        final ClientRequestContext ctx;
        try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) {
            final com.linecorp.armeria.common.HttpResponse response = webClient.execute(armeriaRequest,
                                                                                        requestOptions);
            ctx = captor.get();
            splitResponse = response.split(ctx.eventLoop());
        }

        return splitResponse.headers().thenApply(responseHeaders -> {
            final AsyncBodySubscriber subscriber = new AsyncBodySubscriber(consumer);
            splitResponse.body().subscribe(subscriber, ctx.eventLoop());
            return new ArmeriaHttpResponse(request, responseHeaders, subscriber);
        });
    }
Armeria based implementation of {@link StandardHttpClient}.
kubernetes/src/main/java/com/linecorp/armeria/client/kubernetes/ArmeriaHttpClient.java