android中HttpClient获取Session然后使用 WebView共享session的解决办法(转)
来源:互联网 发布:ubuntu c语言调试工具 编辑:程序博客网 时间:2024/03/28 20:25
android开始项目中,通常会遇到既使用HttpClient,又使用WebView的情况。一个典型的例子是,使用HttpClient登录,WebView展示登录后的某些页面,这个时候,如果直接不加任何处理的话会发现在使用WebView展示的时候,会提示没有登录你的应用系统,造成这种结果的原因就是使用HttpClient登录的session和WebView访问服务器的session并不是同一个,解决办法如下。 DefaultHttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); HttpContext context = new BasicHttpContext(); CookieStore cookieStore = new BasicCookieStore(); context.setAttribute(ClientContext.COOKIE_STORE, cookieStore); HttpResponse response = client.execute(get, context); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 根据你的逻辑,判断返回的值是不是表示已经登录成功 if (isLoginSuccess()) { List cookies = cookieStore.getCookies(); if (!cookies.isEmpty()) { for (int i = cookies.size(); i > 0; i --) { // 使用一个常量来保存这个cookie,用于做session共享之用 } }
HttpClient 登录代码如下
Cookie cookie = cookies.get(i - 1);
if (cookie.getName().equalsIgnoreCase("jsessionid")) {
Utils.appCookie = cookie;
}
}
}
WebView代码
String url4load = "登录域名下你要访问的地址";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = Utils.appCookie;
if (sessionCookie != null) {
String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
cookieManager.setCookie(url4Load, cookieString);
CookieSyncManager.getInstance().sync();
}
0 0
- android中HttpClient获取Session然后使用 WebView共享session的解决办法(转)
- android中HttpClient获取Session然后使用 WebView共享session的解决办法(转)
- android中HttpClient获取Session然后使用 WebView共享session的解决办法
- android使用webview登录,获取session传递到httpclient小例子
- android使用webview登录,获取session传递到httpclient小例子
- Android的HttpClient和WebView session不同的问题
- Android的HttpClient和WebView session不同的问题
- 关于Android 中如何共享原生httpClient获取的cookie并与webView共享
- Struct2中Session的获取及数据共享原理
- android webview获取session值以及获取Js返回值
- PHP、Android中Session的使用
- 分布式中使用Redis实现Session共享
- 分布式中使用Redis实现Session共享
- 【转】在ashx页面中context.Session["xxx"]获取不到值的解决办法
- 【转】在ashx页面中context.Session["xxx"]获取不到值的解决办法
- 关于在一般处理程序中使用Session的解决办法
- IE中SESSION共享
- tomcat中session共享
- Android网络开发框架
- 最值得你所关注的10个C语言开源项目
- php用正则判断是否为数字
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- APKTOOL的使用心得
- android中HttpClient获取Session然后使用 WebView共享session的解决办法(转)
- Spring MVC3在controller和视图之间传递参数的方法
- Codeforces Round #291 (Div. 2) D - R2D2 and Droid Army
- 机器学习中的数学(2)-线性回归,偏差、方差权衡
- 用浏览器AXURE RP生成的文件网站,安装Axure-RP-Extension-for-Chrome
- 笔记:Java 对象与类
- IOS 内存二三事
- 图解Flex开发教程
- android里 什么时候用Thread 什么时候用service