WebFlux supports HTTP HEAD
Issue: SPR-15994
This commit is contained in:
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.reactivestreams.Publisher;
|
||||
import org.springframework.core.io.buffer.NettyDataBufferFactory;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@@ -64,8 +65,8 @@ public class RxNettyHttpHandlerAdapter implements RequestHandler<ByteBuf, ByteBu
|
||||
NettyDataBufferFactory bufferFactory = new NettyDataBufferFactory(channel.alloc());
|
||||
InetSocketAddress remoteAddress = (InetSocketAddress) channel.remoteAddress();
|
||||
|
||||
RxNettyServerHttpRequest request;
|
||||
RxNettyServerHttpResponse response;
|
||||
ServerHttpRequest request;
|
||||
ServerHttpResponse response;
|
||||
try {
|
||||
request = new RxNettyServerHttpRequest(nativeRequest, bufferFactory, remoteAddress);
|
||||
response = new RxNettyServerHttpResponse(nativeResponse, bufferFactory);
|
||||
@@ -76,6 +77,10 @@ public class RxNettyHttpHandlerAdapter implements RequestHandler<ByteBuf, ByteBu
|
||||
return Observable.empty();
|
||||
}
|
||||
|
||||
if (HttpMethod.HEAD.equals(request.getMethod())) {
|
||||
response = new HttpHeadResponseDecorator(response);
|
||||
}
|
||||
|
||||
Publisher<Void> result = this.httpHandler.handle(request, response)
|
||||
.onErrorResume(ex -> {
|
||||
logger.error("Could not complete request", ex);
|
||||
|
||||
Reference in New Issue
Block a user