On Wed, 2012-11-07 at 19:43 +0100, [email protected] wrote: > Hi JM, > > Look again: the ',' in > > "expires=Sun, 03-Nov-2013 10:54:41 GMT;" > > is parsed as if it were a ';' . > > That leads to > expires=Sun > and > 03-Nov-2013 10:54:41 GMT=null > > I can't believe I'm the first person to notice this... > > Paul. > >
The header in question is not a valid cookie as defined by the HTTP specification. It contains a reserved character (comma) without enclosing quote marks in one of the attribute values. Oleg > > > >Hi Paul, > > > >I don't see anything wrong with the output. What will have you expected? > > > >JM > > > >2012/11/6, [email protected] <[email protected]>: > >> > >> I'm using httpcore-4.2.1 , and code below shows the problem. > >> The code is similar to that on page 2 of the httpcore tutorial pdf. > >> I only added a Set-Cookie with an expires header element . > >> ------------------------------------------------------------------- > >> > >> import org.apache.http.*; > >> import org.apache.http.message.*; > >> > >> public class Page2 { > >> > >> public static void main(String[] args) { > >> HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, > >> HttpStatus.SC_OK, "OK"); > >> response.addHeader("Set-Cookie", "c1=a; path=/; domain=localhost"); > >> response.addHeader("Set-Cookie", > >> "c2=b; path=\"/\", c3=c; domain=\"localhost\""); > >> response.addHeader("Set-Cookie", > >> "c2=b; expires=Sun, 03-Nov-2013 10:54:41 GMT;" + > >> " path=\"/\", c3=c; domain=\"localhost\""); > >> HeaderElementIterator it = new BasicHeaderElementIterator( > >> response.headerIterator("Set-Cookie")); > >> while (it.hasNext()) { > >> HeaderElement elem = it.nextElement(); > >> System.out.println(elem.getName() + " = " + elem.getValue()); > >> NameValuePair[] params = elem.getParameters(); > >> for (int i = 0; i < params.length; i++) { > >> System.out.println(" " + params[i]); > >> } > >> } > >> } > >> } > >> ------------------------------------------------------------------- > >> It produces output > >> > >> c1 = a > >> path=/ > >> domain=localhost > >> c2 = b > >> path=/ > >> c3 = c > >> domain=localhost > >> c2 = b > >> expires=Sun > >> 03-Nov-2013 10:54:41 GMT = null > >> path=/ > >> c3 = c > >> domain=localhost > >> > >> Clearly the date is parsed wrong. > >> > >> Is this a bug in httpcore, or am i doing something wrong? > >> > >> Regards, > >> Paul van Bemmelen > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> > > > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
