XUtil3.0实际项目中如何处理Cookie
第一次请求的时候获取Cookie并保存起来
RequestParams params2 = new RequestParams(ConfigConstants.GETHEADPORTRAIT);
//强制表单请求
params2.setMultipart(true);
// 键和值
params2.addBodyParameter("account",username);
//POST请求
x.http().post(params2, new Callback.CacheCallback<String>() {
@Override
public boolean onCache(String result) {
return false;
}
@Override
public void onSuccess(String result) {
//提取Cookie 并保存 下次请求前加入header
DbCookieStore instance = DbCookieStore.INSTANCE;
List<HttpCookie> cookies = instance.getCookies();
for (HttpCookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
SharePreferenceUtil.setPrefString(getBaseContext(),"Cookiename",name);
SharePreferenceUtil.setPrefString(getBaseContext(),"Cookievalue",value);
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
再次请求数据的时候取出Cookie 学会要判断Cookie过期的情况
//再次请求数据
String cookiename = SharePreferenceUtil.getPrefString(getBaseContext(), "Cookiename", "");
String cookievalue = SharePreferenceUtil.getPrefString(getBaseContext(), "Cookievalue", "");
RequestParams params2 = new RequestParams(ConfigConstants.LOGINURL);
params2.addHeader("Cookie", cookiename + "="+ cookievalue);
params2.setMultipart(true);
params2.addBodyParameter("passwd",Md5Utils.MD5(prefString1));
x.http().post(params2, new Callback.CacheCallback<String>() {
@Override
public boolean onCache(String result) {
return false;
}
@Override
public void onSuccess(String result) {
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});