diff --git a/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java index 4db43942fde..feddda57a76 100644 --- a/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/ReactorClientHttpRequest.java @@ -145,7 +145,9 @@ final class ReactorClientHttpRequest extends AbstractStreamingClientHttpRequest headers.forEach((key, value) -> request.requestHeaders().set(key, value)); if (body == null) { - return outbound; + // NettyOutbound#subscribe calls then() and that expects a body + // Use empty Mono instead for a more optimal send + return Mono.empty(); } AtomicReference executorRef = new AtomicReference<>(); diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpRequest.java index 83e081c3c9b..646ba71adf0 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpRequest.java @@ -120,7 +120,9 @@ class ReactorClientHttpRequest extends AbstractClientHttpRequest implements Zero @Override public Mono setComplete() { - return doCommit(this.outbound::then); + // NettyOutbound#then() expects a body + // Use null as the write action for a more optimal send + return doCommit(null); } @Override diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorNetty2ClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorNetty2ClientHttpRequest.java index c24ec75ecea..f8fab77ba67 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorNetty2ClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorNetty2ClientHttpRequest.java @@ -123,7 +123,9 @@ class ReactorNetty2ClientHttpRequest extends AbstractClientHttpRequest implement @Override public Mono setComplete() { - return doCommit(this.outbound::then); + // NettyOutbound#then() expects a body + // Use null as the write action for a more optimal send + return doCommit(null); } @Override