如果你不介意改变CookieSpec,你可以提供自己的,更宽松的子类.
首先,创建一个宽松的CookieSpec,它将接受expires属性的null和empty值,如下所示:
class LenientCookieSpec extends BrowserCompatSpec {
public LenientCookieSpec() {
super();
registerAttribHandler(ClientCookie.EXPIRES_ATTR, new BasicExpiresHandler(DATE_PATTERNS) {
@Override public void parse(SetCookie cookie, String value) throws MalformedCookieException {
if (TextUtils.isEmpty(value)) {
// You should set whatever you want in cookie
cookie.setExpiryDate(null);
} else {
super.parse(cookie, value);
}
}
});
}
}
现在你需要注册&在HTTP客户端中选择这个新的CookieSpec.
DefaultHttpClient client = new DefaultHttpClient();
client.getCookieSpecs().register("lenient", new CookieSpecFactory() {
public CookieSpec newInstance(HttpParams params) {
return new LenientCookieSpec();
}
});
HttpClientParams.setCookiePolicy(client.getParams(), "lenient");
“像这样”的东西可能适合你.