Android处理登录的session过期
来源:互联网 发布:淘宝店铺没东西 编辑:程序博客网 时间:2024/05/23 01:19
1.笨办法:每次请求都检查一下时间最后一次登录成功的时间,如果过期重新登录;
2.RxJava:retryWhen,请求失败了尝试登陆了在请求;(但是每个请求的方法里面都要写一遍retryWhen麻烦。如果用了rxjava,可以考虑这种方法。(具体代码待补充)
3.使用okhttp3的拦截器(最佳)Interceptor。
具体实践:
由于我自己的项目使用了Rxjava和Okhttp,所以考虑方便,使用的第三种方法;
关键代码:
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Response originalResponse = chain.proceed(originalRequest);
if (originalResponse.code() == 500 || originalResponse.body().string().equals("no login")) {//这里是由于我和后端司机没沟通好,有的端口未登录时请求的是500错误,有的是"no login",按自己实际情况来;
originalResponse.body().close();
Request loginRequest = getLoginRequest();
Response loginResponse = chain.proceed(loginRequest);
if (loginResponse.isSuccessful()) {
loginResponse.body().close();
return chain.proceed(originalRequest);
}
}
******
******
}
private Request getLoginRequest() {
return new Request.Builder()
.url("http://113.106.90.51:xxxx/xxxx/xxxxxx")//
.post(new FormBody.Builder()
.add(Constant.USERNAME, "xxx")
.add(Constant.PWD, "xx")
.build())
.build();
}
- Android处理登录的session过期
- ecshop登录超时、session过期的解决办法
- session过期,登录页被内嵌iframe的解决方案
- flex(替代session过期)用户长时间不操作要求重新登录的处理
- flex(替代session过期)用户长时间不操作要求重新登录的处理
- session过期,处理ajax请求,使其重新登录
- ajaxsetup,结合拦截器处理session过期,跳转登录页面
- DWR的异常处理及session过期
- Extjs 处理Session过期的方法
- 关于session过期跳转的处理方法
- DWR的异常处理及session过期
- Ajax 请求session过期的统一处理
- Tomcat的Session过期处理策略
- Session过期处理
- Session过期处理_1
- Session过期处理_2
- Tomcat处理过期Session
- session过期处理问题
- Unity3D引擎之高级渲染技术
- LeetCode解题报告 322. Coin Change [medium]
- Java 中常用缓存Cache机制的实现
- EntityManager实体操作
- Linux命令 -- sed命令,去除指定字符 ---- ()\-等等
- Android处理登录的session过期
- 给Android Studio安装Genymotion插件
- windows下批处理处理文件编码格式iconv
- 控制台绘制登陆框(三): TAB切换的改进
- 操作系统与网络实现 之二十(乙)
- centos7 LVS+Keepalived实现mysql的负载均衡
- Node.js-模块和包
- QNX Momentics启动时各种内存错误解决方法
- JAVA反射机制