首先是httpclient 获取的cookie,存储全局变量类似于application.sessionCookie=mycookie;
httpclient 处cookie是之前定义的成String 并在header中获取。
在webview 处需要无登录获取web内容时:
//同步cookie
CookieSyncManager.createInstance(this);
CookieManager cookieManager=CookieManager.getInstance();
String sessionCookie=MyApplication.SessionCookie;
if(sessionCookie!=null){
//String cookieString=sessionCookie;
cookieManager.setCookie(myDetailUrl, sessionCookie);
CookieSyncManager.getInstance().sync();
}
loadurl(myWebview,myDetailUrl);
或者:
HttpClient登录:
DefaultHttpClient client =new DefaultHttpClient();
HttpGet get =new HttpGet(url);
HttpContext context =new BasicHttpContext();
CookieStore cookieStore =new BasicCookieStore();
context.setAttribute(ClientContext.COOKIE_STORE,cookiestore);
HttpResponse res=client.execute(get,ccontext);
if(res.getStatusline().getStatusCode==HttpStatus.SC_OK){
if(LoginSuccess()){
list cookies=cookieStore.getCookies();
if(!cookies.isEmpty()){
for(int i=cookie.size();i>0;i- -){
Cookie cookie=cookies.get(i-1);
if(cookie.getName().equalsIgnoreCase("jsessionid")){
application.mycookie=cookie;
}
}
}
}
WebView端使用:
String loadUrl=" ";
//同步cookie
CookieSyncManager.createInstance(this);
CookieManager cookieManager=CookieManager.getInstance();
String sessionCookie=MyApplication.SessionCookie;
if(sessionCookie!=null){
String cookieString=sessionCookie.getName+"="+sessionCookie.getValue()+"; dommain="+ sessionCookie.getDommain;
cookieManager.setCookie(loadUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
loadurl(myWebview,loadUrl);