关于Android 中如何共享原生httpClient获取的cookie并与webView共享

首先是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); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值