You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2012/03/03 13:28:59 UTC

svn commit: r1296612 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/impl/client/DefaultRequestDirector.java test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java

Author: olegk
Date: Sat Mar  3 12:28:59 2012
New Revision: 1296612

URL: http://svn.apache.org/viewvc?rev=1296612&view=rev
Log:
ClientPNames.VIRTUAL_HOST has no effect if set at the client level

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=1296612&r1=1296611&r2=1296612&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java Sat Mar  3 12:28:59 2012
@@ -410,8 +410,7 @@ public class DefaultRequestDirector impl
         origWrapper.setParams(params);
         HttpRoute origRoute = determineRoute(target, origWrapper, context);
 
-        virtualHost = (HttpHost) orig.getParams().getParameter(
-                ClientPNames.VIRTUAL_HOST);
+        virtualHost = (HttpHost) origWrapper.getParams().getParameter(ClientPNames.VIRTUAL_HOST);
 
         // HTTPCLIENT-1092 - add the port if necessary
         if (virtualHost != null && virtualHost.getPort() == -1) {

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java?rev=1296612&r1=1296611&r2=1296612&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestDefaultClientRequestDirector.java Sat Mar  3 12:28:59 2012
@@ -185,6 +185,32 @@ public class TestDefaultClientRequestDir
     }
 
     @Test
+    public void testClientLevelVirtualHostHeader() throws Exception {
+        int port = this.localServer.getServiceAddress().getPort();
+        this.localServer.register("*", new SimpleService());
+
+        HttpContext context = new BasicHttpContext();
+
+        String s = "http://localhost:" + port;
+        HttpGet httpget = new HttpGet(s);
+
+        String virtHost = "virtual";
+        this.httpclient.getParams().setParameter(ClientPNames.VIRTUAL_HOST, new HttpHost(virtHost, port));
+        HttpResponse response = this.httpclient.execute(getServerHttp(), httpget, context);
+        EntityUtils.consume(response.getEntity());
+
+        HttpRequest reqWrapper = (HttpRequest) context.getAttribute(
+                ExecutionContext.HTTP_REQUEST);
+
+        Assert.assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
+        // Check that Host header is generated as expected
+        Header[] headers = reqWrapper.getHeaders("host");
+        Assert.assertNotNull(headers);
+        Assert.assertEquals(1, headers.length);
+        Assert.assertEquals(virtHost+":"+port,headers[0].getValue());
+    }
+
+    @Test
     public void testDefaultHostAtRequestLevel() throws Exception {
         int port = this.localServer.getServiceAddress().getPort();
         this.localServer.register("*", new SimpleService());