httpclient 4.1.2-GA 出现invalid cookie header 的解决办法
最近在使用httpcomponent-client-4.1.2时,遇到如下错误:
client.getParams().setParameter(CookieSpecPNames.DATE_PATTERNS,Arrays.asList("EEE, dd-MMM-yyyy HH:mm:ss z"));
怀疑在别处做了其他处理,单步观察入参与回复中中给出demo的不同,意外发现在org.apache.http.impl.cookie.DateUtils#parseDate(String dateValue,String[] dateFormats,Date)方法入参的第一个String入参包含两个双引号。往下走,看到如下代码:
if (dateValue.length() > 1 && dateValue.startsWith("'") && dateValue.endsWith("'")) { dateValue = dateValue.substring (1, dateValue.length() - 1); }
if (dateValue.length() > 1 && ((dateValue.startsWith("'") && dateValue.endsWith("'")) || (dateValue.startsWith(""") && dateValue.endsWith("""))) ) { dateValue = dateValue.substring (1, dateValue.length() - 1); }