android端和服务端session保持

原创 2013年12月05日 16:29:14

为了保持服务端的session,我首先想到的办法就是没隔一段时间调用一下我们的服务器。

之前出了总总问题,什么timeoutException,ClientProtocolException等等问题,我讲慢慢解释.

我在service中做轮询调用服务器保持session时,只要出现一次timeoutexception,接着就会出现ClientProtocolException,后来发现这是重定向导致的问题,然后在AsyncHttpClient中设置了

client.setEnableRedirects(false);
client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, false);
但是这么一设置又会出一个问题,我在登录的时候总是报302,又回到了重定向的问题。

我发现服务端在给我设置attribute传递cookies的时候,使用了重定向。没办法,只能将setEnableRedirects再次打开。

还有一个问题就是在AsyncHttpClient话说是自动保存CookieStore的,但是我打印了log,结果CookieStore是为null,导致我在做轮询的时候,是没有向服务端提交Cookie的,这样过了30分钟服务端的session任然会超时。

于是手动的加上

CookieStore cookieStore = new PersistentCookieStore(this);
cline.setCookieStore(cookieStore);

然后打印log

CookieStore cookieStore = new PersistentCookieStore(this);
		cline.setCookieStore(cookieStore);
		HttpContext httpContext = cline.getHttpContext();
		CookieStore cookies = (CookieStore) httpContext.getAttribute(ClientContext.COOKIE_STORE);
		if(cookies!=null){
			for(Cookie c:cookies.getCookies()){
				LogUtil.d("login activtity onsuccess before ~~"+c.getName(),c.getValue());
			}
		}else{
			LogUtil.d("login activtity onsuccess  before~~","cookies is null");
		}
发现这次才有值。

哈哈,明白了吧,你需要在登录的时候手动添加

CookieStore cookieStore = new PersistentCookieStore(this);
		cline.setCookieStore(cookieStore);
才可以的。



版权声明:本文为博主原创文章,未经博主允许不得转载。

java 后台和android 交互 保持session通讯

最近和app 对接登录时,需要做session保持通讯。这里整理记录下 主要实现是:用户登录成功后返回sessionID 给app ,app 上需要用户登录后才能操作的,在每次请求的时候把s...
  • phpfzh
  • phpfzh
  • 2017年05月19日 10:15
  • 772

Android 通过httpclient请求web服务器,并解决用户登录session保持

package com.rainet.tiis.network; import java.util.Iterator; import java.util.List; import java.util...

Android AsyncHttpClient登录保存cookie和读写cookie

AsyncHttpClient有个特性: (11)持久化cookie存储,可以将cookie保存到你的应用程序的SharedPreferences中 AsyncHttpClient Cookie...
  • jdsjlzx
  • jdsjlzx
  • 2015年03月28日 13:59
  • 22536

Android网络请求库android-async-http使用

android-async-http框架是一个开源的Android异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法处理请求结果,可以轻松的获取网络数据或者向服务器发送数据,使...

异步的AsyncHttpClient使用详解

背景        前面的一篇文章【同步的HttpClient使用详解】中,提到了服务端通进行网络请求的方式。也讲述了在并发量大的情况下使用HttpClient的连接池来提高性能。此方法虽然很有效果,...

Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。     一、我们先解释一下他的...

Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。     一、我们先解释一下他的...
  • judyge
  • judyge
  • 2016年07月29日 18:53
  • 183

Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。     一、我们先解释一下他的...

Android客户端和服务端如何使用Token和Session

转载http://wyong.blog.51cto.com/1115465/1553352 对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什...

[转]Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。     一、我们先解释一下他的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android端和服务端session保持
举报原因:
原因补充:

(最多只允许输入30个字)