private Supplier<Mono<Void>> execute(Supplier<HttpRequest> supplier) {
        return () -> Mono.defer(() -> {
            assert request == null : request;
            request = supplier.get();
            try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) {
                final HttpResponse response;
                if (requestOptions == null) {
                    response = client.execute(request);
                } else {
                    response = client.execute(request, requestOptions);
                }
                ctx = captor.get();
                future.complete(response);
            }
            return Mono.empty();
        });
    }
Returns the {@link ClientRequestContext} associated with this request.
This method returns {@code null} until the request is sent.
A non-{@code null} value is available only after {@link #future()} is complete.
spring/spring6/src/main/java/com/linecorp/armeria/spring/internal/client/ArmeriaClientHttpRequest.java