Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.1730 diff -u -b -B -r1.1730 ChangeLog --- ChangeLog 28 Dec 2003 10:14:10 -0000 1.1730 +++ ChangeLog 28 Dec 2003 21:47:04 -0000 @@ -1,3 +1,13 @@ +2003-12-28 Michael Koch + + * gnu/java/net/HeaderFieldHelper.java + (getHeaderFieldValueByKey): New method. + (getHeaderFields): New method. + * gnu/java/net/protocol/http/Connection.java + (connect): Lowercase key before adding to HeaderFieldHelper object. + (getHeaderField): New method. + (getHeaderFields): New method. + 2003-12-28 Guilhem Lavaux * java/io/LineNumberReader.java Index: gnu/java/net/HeaderFieldHelper.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/net/HeaderFieldHelper.java,v retrieving revision 1.4 diff -u -b -B -r1.4 HeaderFieldHelper.java --- gnu/java/net/HeaderFieldHelper.java 20 Oct 2003 14:06:01 -0000 1.4 +++ gnu/java/net/HeaderFieldHelper.java 28 Dec 2003 21:47:04 -0000 @@ -38,6 +38,8 @@ package gnu.java.net; +import java.util.HashMap; +import java.util.Map; import java.util.Vector; /** @@ -95,6 +97,36 @@ } return value; + } + + public String getHeaderFieldValueByKey(String key) + { + String value = null; + + try + { + value = (String) headerFieldValues.elementAt + (headerFieldKeys.indexOf(key)); + } + catch (ArrayIndexOutOfBoundsException e) + { + } + + return value; + } + + public Map getHeaderFields() + { + HashMap headers = new HashMap(); + int max = headerFieldKeys.size(); + + for (int index = 0; index < max; index++) + { + headers.put(headerFieldKeys.elementAt(index), + headerFieldValues.elementAt(index)); + } + + return headers; } public int getNumberOfEntries() Index: gnu/java/net/protocol/http/Connection.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/net/protocol/http/Connection.java,v retrieving revision 1.10 diff -u -b -B -r1.10 Connection.java --- gnu/java/net/protocol/http/Connection.java 27 Dec 2003 20:30:26 -0000 1.10 +++ gnu/java/net/protocol/http/Connection.java 28 Dec 2003 21:47:04 -0000 @@ -303,7 +302,7 @@ { if (key != null) { - headers.addHeaderField (key, value); + headers.addHeaderField (key.toLowerCase(), value); key = null; value = null; } @@ -333,7 +332,7 @@ if (key != null) { - headers.addHeaderField (key, value); + headers.addHeaderField (key.toLowerCase(), value.toLowerCase()); } } @@ -409,6 +408,36 @@ else throw new ProtocolException ("Unsupported or unknown request method " + method); + } + + public String getHeaderField(String name) + { + if (!connected) + try + { + connect(); + } + catch (IOException x) + { + return null; + } + + return (String) headers.getHeaderFieldValueByKey(name.toLowerCase()); + } + + public Map getHeaderFields() + { + if (!connected) + try + { + connect(); + } + catch (IOException x) + { + return null; + } + + return headers.getHeaderFields(); } /**