diff --git a/src/main/java/reactor/netty/http/client/HttpClient.java b/src/main/java/reactor/netty/http/client/HttpClient.java index 655122e2cf..788ec6ed73 100644 --- a/src/main/java/reactor/netty/http/client/HttpClient.java +++ b/src/main/java/reactor/netty/http/client/HttpClient.java @@ -63,6 +63,9 @@ * is called to retrieve a ready to use {@link TcpClient}, then {@link * TcpClient#configure()} retrieve a usable {@link Bootstrap} for the final {@link * TcpClient#connect()} is called. + * {@code Transfer-Encoding: chunked} will be applied for those HTTP methods for which + * a request body is expected. {@code Content-Length} provided via request headers + * will disable {@code Transfer-Encoding: chunked}. *

Examples: *

  * {@code
@@ -411,25 +414,6 @@ public final HttpClient mapConnect(BiFunction
 		return new HttpClientOnConnectMap(this, connector);
 	}
 
-	/**
-	 * Specifies whether transfer-encoding is enabled
-	 *
-	 * @param chunkedEnabled if true transfer-encoding is enabled otherwise disabled.
-	 * (default: true)
-	 * @return a new {@link HttpClient}
-	 * @deprecated Using {@link #headers(Consumer)} for specifying the content length
-	 * will disable the transfer-encoding
-	 */
-	@Deprecated
-	public final HttpClient chunkedTransfer(boolean chunkedEnabled) {
-		if (chunkedEnabled) {
-			return tcpConfiguration(CHUNKED_ATTR_CONFIG);
-		}
-		else {
-			return tcpConfiguration(CHUNKED_ATTR_DISABLE);
-		}
-	}
-
 	/**
 	 * Apply cookies configuration.
 	 *
@@ -915,18 +899,12 @@ static String reactorNettyVersion() {
 	static final Function COMPRESS_ATTR_DISABLE =
 			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_NO_COMPRESS);
 
-	static final Function CHUNKED_ATTR_CONFIG =
-			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_CHUNKED);
-
 	static final Function KEEPALIVE_ATTR_CONFIG =
 			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_KEEPALIVE);
 
 	static final Function KEEPALIVE_ATTR_DISABLE =
 			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_NO_KEEPALIVE);
 
-	static final Function CHUNKED_ATTR_DISABLE =
-			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_NO_CHUNKED);
-
 	static final Function FOLLOW_REDIRECT_ATTR_CONFIG =
 			tcp -> tcp.bootstrap(HttpClientConfiguration.MAP_REDIRECT);
 
diff --git a/src/main/java/reactor/netty/http/client/HttpClientConfiguration.java b/src/main/java/reactor/netty/http/client/HttpClientConfiguration.java
index 66271322a0..f210028734 100644
--- a/src/main/java/reactor/netty/http/client/HttpClientConfiguration.java
+++ b/src/main/java/reactor/netty/http/client/HttpClientConfiguration.java
@@ -47,7 +47,6 @@ final class HttpClientConfiguration {
 			AttributeKey.newInstance("httpClientConf");
 
 	boolean                       acceptGzip                     = false;
-	Boolean                       chunkedTransfer                = null;
 	String                        uri                            = null;
 	String                        baseUrl                        = null;
 	HttpHeaders                   headers                        = null;
@@ -75,7 +74,6 @@ final class HttpClientConfiguration {
 		this.cookieEncoder = from.cookieEncoder;
 		this.cookieDecoder = from.cookieDecoder;
 		this.followRedirectPredicate = from.followRedirectPredicate;
-		this.chunkedTransfer = from.chunkedTransfer;
 		this.baseUrl = from.baseUrl;
 		this.headers = from.headers;
 		this.method = from.method;
@@ -96,7 +94,6 @@ static HttpClientConfiguration getAndClean(Bootstrap b) {
 		return hcc;
 	}
 
-	@SuppressWarnings("unchecked")
 	static HttpClientConfiguration getOrCreate(Bootstrap b) {
 
 		HttpClientConfiguration hcc = (HttpClientConfiguration) b.config()
@@ -111,7 +108,6 @@ static HttpClientConfiguration getOrCreate(Bootstrap b) {
 		return hcc;
 	}
 
-	@SuppressWarnings("unchecked")
 	static HttpClientConfiguration get(Bootstrap b) {
 
 		HttpClientConfiguration hcc = (HttpClientConfiguration) b.config()
@@ -157,17 +153,6 @@ static HttpClientConfiguration get(Bootstrap b) {
 		return b;
 	};
 
-	static final Function MAP_CHUNKED = b -> {
-		getOrCreate(b).chunkedTransfer = true;
-		return b;
-	};
-
-
-	static final Function MAP_NO_CHUNKED = b -> {
-		getOrCreate(b).chunkedTransfer = false;
-		return b;
-	};
-
 
 	static final Pattern FOLLOW_REDIRECT_CODES = Pattern.compile("30[1278]");
 	static final BiPredicate FOLLOW_REDIRECT_PREDICATE =
diff --git a/src/main/java/reactor/netty/http/client/HttpClientConnect.java b/src/main/java/reactor/netty/http/client/HttpClientConnect.java
index b40ed4cc08..64a905d309 100644
--- a/src/main/java/reactor/netty/http/client/HttpClientConnect.java
+++ b/src/main/java/reactor/netty/http/client/HttpClientConnect.java
@@ -435,7 +435,6 @@ static final class HttpClientHandler extends SocketAddress
 		final BiFunction>
 		                         handler;
 		final boolean            compress;
-		final Boolean            chunkedTransfer;
 		final UriEndpointFactory uriEndpointFactory;
 		final String             websocketProtocols;
 		final int                maxFramePayloadLength;
@@ -457,7 +456,6 @@ static final class HttpClientHandler extends SocketAddress
 			this.method = configuration.method;
 			this.compress = configuration.acceptGzip;
 			this.followRedirectPredicate = configuration.followRedirectPredicate;
-			this.chunkedTransfer = configuration.chunkedTransfer;
 			this.cookieEncoder = configuration.cookieEncoder;
 			this.cookieDecoder = configuration.cookieDecoder;
 			this.proxyProvider = proxyProvider;
@@ -547,17 +545,14 @@ Publisher requestWithBody(HttpClientOperations ch) {
 
 				ch.followRedirectPredicate(followRedirectPredicate);
 
-				if (chunkedTransfer == null) {
-					if (Objects.equals(method, HttpMethod.GET) ||
-							Objects.equals(method, HttpMethod.HEAD) ||
-							Objects.equals(method, HttpMethod.DELETE)) {
-						ch.chunkedTransfer(false);
-					} else if (!headers.contains(HttpHeaderNames.CONTENT_LENGTH)) {
-						ch.chunkedTransfer(true);
-					}
-				}
-				else {
-					ch.chunkedTransfer(chunkedTransfer);
+				if (Objects.equals(method, HttpMethod.GET) ||
+						Objects.equals(method, HttpMethod.HEAD) ||
+						Objects.equals(method, HttpMethod.DELETE)) {
+					ch.chunkedTransfer(false);
+				} else if (headers.contains(HttpHeaderNames.CONTENT_LENGTH)) {
+					ch.chunkedTransfer(false);
+				} else {
+					ch.chunkedTransfer(true);
 				}
 
 				if (handler != null) {