diff --git a/spring-ws-core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java b/spring-ws-core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java index 23ddf1fa..f461b2e6 100644 --- a/spring-ws-core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java +++ b/spring-ws-core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java @@ -22,10 +22,11 @@ import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URI; import java.net.URISyntaxException; -import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; import org.springframework.util.Assert; @@ -102,7 +103,7 @@ public class HttpUrlConnection extends AbstractHttpSenderConnection { @Override public Iterator getResponseHeaderNames() throws IOException { - List headerNames = new ArrayList(); + Set headerNames = new HashSet(); // Header field 0 is the status line, so we start at 1 int i = 1; while (true) { @@ -118,13 +119,12 @@ public class HttpUrlConnection extends AbstractHttpSenderConnection { @Override public Iterator getResponseHeaders(String name) throws IOException { - String headerField = connection.getHeaderField(name); - if (headerField == null) { - return Collections.emptyList().iterator(); - } - else { - Set tokens = StringUtils.commaDelimitedListToSet(headerField); - return tokens.iterator(); + Map> mapHeader = connection.getHeaderFields(); + List listHeaderValues = mapHeader.get(name); + if (listHeaderValues == null) { + return Collections.emptyList().iterator(); + } else { + return listHeaderValues.iterator(); } }