先看看cookie可能存放的位置
1.Httpclient会存储当次请求的cookie内容,存储位置在 httpClient.getCookieStore 但是apache建议自定义cookie存储方式,因为cookiestore把cookie放在arraylist里很容易被系统回收[1]。
2.WebView会存储cookie在CookieManager,具体使用方式,后续的文章会讲这里不是重点。
正常HttpClient中得Cookie是不能与WebView中得Cookie共享的所以这里需要一个中间变量(这里叫做CookieMap)来管理Cookie。每次请求的时候都要刷新CookieMap,我推荐的Cookie管理方式是只增加、修改不删除。每次请求完成都要进行一次Cookie同步,有的app要求保持登陆状态,所以也有必要把cookie放入Preference。
List cookieList = httpClient.getCookieStore().getCookies();
if (context == null || cookieList == null || cookieList.size() == 0) {
return;
}
SharedPreferences preferences = context.getSharedPreferences(Constant.HTTPHEAD, Context.MODE_PRIVATE);
Editor edit = preferences.edit();
for (Cookie cookie : cookieList) {
edit.putString(cookie.getName(), cookie.getValue());
httpCookiesMap.