存读cookies的方法
/**
 * 将cookies 以StringBuffer类型保存到 SharedPreferences里
 * 
 * @param sb
 */
private static void SaveCookies(StringBuffer sb) {
SharedPreferences settings = context.getSharedPreferences("sessionId",
0);
SharedPreferences.Editor editor = settings.edit();
String cookies = sb.toString();
editor.putString("cookies", cookies);
editor.commit();
} /** 从SharedPreferences读取cookies **/
private static String LoadCookies() {
SharedPreferences settings = context.getSharedPreferences("sessionId",
0);
String cookies = settings.getString("cookies", "");
if (!"".equals(cookies)) {
return cookies;
}
return "";
}请求需要存下cookies的时候
HttpPost hp = new HttpPost(url);
if (values != null) {
hp.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8));
}
HttpClient client = getHttpClient(); HttpResponse response = client.execute(hp); List<Cookie> cookies = ((AbstractHttpClient) client).getCookieStore()
.getCookies();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < cookies.size(); i++) {
Cookie cookie = cookies.get(i);
String cookieName = cookie.getName();
String cookieValue = cookie.getValue();
if (!TextUtils.isEmpty(cookieName)
&& !TextUtils.isEmpty(cookieValue)) {
sb.append(cookieName + "=");
sb.append(cookieValue + ";");
}
}
SaveCookies(sb);需要带上cookies请求的时候
HttpPost hp = new HttpPost(url);
HttpEntity entity = new UrlEncodedFormEntity(values, HTTP.UTF_8);
hp.setEntity(entity);
HttpClient client = getHttpClient();
hp.setHeader("Cookie", LoadCookies());
HttpResponse response = client.execute(hp);