You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by mi...@apache.org on 2018/12/24 00:05:31 UTC
[httpcomponents-client] 01/01: Send Keep-Alive for HTTP/1.0 only
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch drop-http11-keep-alive
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit 92b3d1944dd22658dd3b580d5cf59fe1a22329a2
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon Dec 24 01:04:57 2018 +0100
Send Keep-Alive for HTTP/1.0 only
---
.../testing/sync/TestMinimalClientRequestExecution.java | 4 ++--
.../hc/client5/http/protocol/RequestClientConnControl.java | 7 +++++--
.../client5/http/protocol/TestRequestClientConnControl.java | 12 ++++++------
3 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestMinimalClientRequestExecution.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestMinimalClientRequestExecution.java
index 0092cf4..c15a361 100644
--- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestMinimalClientRequestExecution.java
+++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestMinimalClientRequestExecution.java
@@ -91,8 +91,8 @@ public class TestMinimalClientRequestExecution extends LocalServerTestBase {
for (final Header header: headers) {
headerSet.add(header.getName().toLowerCase(Locale.ROOT));
}
- Assert.assertEquals(3, headerSet.size());
- Assert.assertTrue(headerSet.contains("connection"));
+ Assert.assertEquals(2, headerSet.size());
+ //Assert.assertTrue(headerSet.contains("connection"));
Assert.assertTrue(headerSet.contains("host"));
Assert.assertTrue(headerSet.contains("user-agent"));
}
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/protocol/RequestClientConnControl.java b/httpclient5/src/main/java/org/apache/hc/client5/http/protocol/RequestClientConnControl.java
index 902cac2..58ffd66 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/protocol/RequestClientConnControl.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/protocol/RequestClientConnControl.java
@@ -38,6 +38,8 @@ import org.apache.hc.core5.http.HttpException;
import org.apache.hc.core5.http.HttpHeaders;
import org.apache.hc.core5.http.HttpRequest;
import org.apache.hc.core5.http.HttpRequestInterceptor;
+import org.apache.hc.core5.http.HttpVersion;
+import org.apache.hc.core5.http.ProtocolVersion;
import org.apache.hc.core5.http.protocol.HttpContext;
import org.apache.hc.core5.util.Args;
import org.slf4j.Logger;
@@ -81,13 +83,14 @@ public class RequestClientConnControl implements HttpRequestInterceptor {
return;
}
+ final ProtocolVersion ver = context.getProtocolVersion();
if (route.getHopCount() == 1 || route.isTunnelled()) {
- if (!request.containsHeader(HttpHeaders.CONNECTION)) {
+ if (!request.containsHeader(HttpHeaders.CONNECTION) && ver.lessEquals(HttpVersion.HTTP_1_0)) {
request.addHeader(HttpHeaders.CONNECTION, HeaderElements.KEEP_ALIVE);
}
}
if (route.getHopCount() == 2 && !route.isTunnelled()) {
- if (!request.containsHeader(PROXY_CONN_DIRECTIVE)) {
+ if (!request.containsHeader(PROXY_CONN_DIRECTIVE) && ver.lessEquals(HttpVersion.HTTP_1_0)) {
request.addHeader(PROXY_CONN_DIRECTIVE, HeaderElements.KEEP_ALIVE);
}
}
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/protocol/TestRequestClientConnControl.java b/httpclient5/src/test/java/org/apache/hc/client5/http/protocol/TestRequestClientConnControl.java
index b4ce09a..6326f9a 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/protocol/TestRequestClientConnControl.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/protocol/TestRequestClientConnControl.java
@@ -76,8 +76,8 @@ public class TestRequestClientConnControl {
interceptor.process(request, null, context);
final Header header1 = request.getFirstHeader(HttpHeaders.CONNECTION);
- Assert.assertNotNull(header1);
- Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
+ Assert.assertNull(header1);
+ //Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
final Header header2 = request.getFirstHeader("Proxy-Connection");
Assert.assertNull(header2);
}
@@ -98,8 +98,8 @@ public class TestRequestClientConnControl {
interceptor.process(request, null, context);
final Header header1 = request.getFirstHeader(HttpHeaders.CONNECTION);
- Assert.assertNotNull(header1);
- Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
+ Assert.assertNull(header1);
+ //Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
final Header header2 = request.getFirstHeader("Proxy-Connection");
Assert.assertNull(header2);
}
@@ -120,8 +120,8 @@ public class TestRequestClientConnControl {
interceptor.process(request, null, context);
final Header header1 = request.getFirstHeader("Proxy-Connection");
- Assert.assertNotNull(header1);
- Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
+ Assert.assertNull(header1);
+ //Assert.assertEquals(HeaderElements.KEEP_ALIVE, header1.getValue());
final Header header2 = request.getFirstHeader(HttpHeaders.CONNECTION);
Assert.assertNull(header2);
}