Index: java/org/apache/commons/httpclient/HttpMethodBase.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v retrieving revision 1.41 diff -u -u -r1.41 HttpMethodBase.java --- java/org/apache/commons/httpclient/HttpMethodBase.java 2 Aug 2002 06:37:26 -0000 1.41 +++ java/org/apache/commons/httpclient/HttpMethodBase.java 2 Aug 2002 11:26:42 -0000 @@ -944,19 +944,25 @@ String host = conn.getHost(); int port = conn.getPort(); + + if (requestHeaders.containsKey("host")){ + log.debug("Request to add Host header ignored: header already added"); + return; + } - if (!requestHeaders.containsKey("host")) { - if (!isIpAddress(host)) { - if (port == 80) { - setRequestHeader("Host", host); - } else { - setRequestHeader("Host", host + ":" + port); - } - } else { - setRequestHeader("Host", ""); - } + if (isIpAddress(host)) { + log.debug("Request to add Host header ignored: host is an ipaddress"); + return; } - } + + log.debug("Adding Host request header"); + //appends the port only if not using the default port for the protocol + if(conn.isSecure()) { + setRequestHeader("Host", (port==443) ? host : host+':'+port); + } else { + setRequestHeader("Host", (port==80) ? host : host+':'+port); + } + } /** * Adds a Cookie request containing the matching {@link Cookie}s.