Android中Volley框架下保持会话方法

作者:mrr 时间:2022-09-11 00:44:12 

公司经理把我拉出来,死马当活马医,做一个安卓app,作为刚毕业几个月且只是培训了几个月的小白来说,这无疑是一个非常大的挑战,当然最大的挑战不是这个,最大的挑战时两个周做出来。这是最蛋疼的,说实话,对于有两三年的开发经验的人来说,两个周开发一个项目很简单,说不定还有很多时间用来干别的。

于是一上来就把自己给难住了,登陆还是很好做的,只要验证返回的信息就可以跳转,但是在接下来后面的数据接口连接的时候各种报错,整了两天,查了很多信息,还接受了公司老人的嘲讽和谩骂终于做出来了。

这个是基于session的一个网络会话,手机app给服务器发送登陆请求的时候,服务器返回的网络response(networkRespone)的头(head)里面存放着你想要的sessionid。这个时候只要重写parseNetworkResponse就可以了:

第一步: 在errorLitener后面添加这个方法获取sessionid


{
protected Response<String> parseNetworkResponse(NetworkResponse response){
Response<String> r = super.parseNetworkReponse(response);
Map<String,String> head = response.headers;
String cookies = head.get("Set-Cookie");
Contant.cookie = cookies.substring(0,cookies.indexOf(";"));
return r;
}
};

以上是写在最初登陆时候的页面的。

第二步:


Contant.cookie 这个是自己写的一个全局变量,写起来很简单
public class Contant{
public static volatile String cookie = null;
}

第三步:在发送数据请求的时候发送session


StringRequest request = new StringRequest(Request.Method.GET, url, listener,
errorListener) {
public Map<String, String> getHeaders() throws AuthFailureError {
if (Contant.localCookie != null && Contant.localCookie.length() > 0) {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("cookie", Contant.Cookie);
Log.d("调试", "headers--" + headers);
return headers;
}else {
return super.getHeaders();
}
}
};

这里面的listener和errorlistener扩展写,写在外面也行,写在这里面也可以,这样就可以了

以上所述是小编给大家介绍的Android中Volley框架下保持会话方法网站的支持!

标签:volley,框架
0
投稿

猜你喜欢

  • SpringBoot项目鉴权的4种方式小结

    2021-10-23 20:10:05
  • Java Arrays.asList使用方法解析

    2023-11-26 06:27:09
  • Android RetainFragment状态保存的方法

    2023-06-03 03:35:08
  • Spring Boot多个定时任务阻塞问题的解决方法

    2023-09-20 11:43:36
  • Android Studio 在项目中引用第三方jar包的方法

    2023-07-18 22:05:49
  • C语言中的数据整除判断问题

    2023-08-28 20:36:09
  • Java异常分类及统一处理详解

    2022-01-27 12:32:24
  • 详解Java并发编程之原子类

    2022-05-28 01:36:06
  • 解决FeignClient重试机制造成的接口幂等性

    2022-01-25 11:10:35
  • IntelliJ IDEA如何设置JDK版本

    2022-08-27 07:46:03
  • 浅谈java项目与javaweb项目导入jar包的区别

    2023-11-11 11:06:19
  • Java实现短信验证码的示例代码

    2023-11-09 03:22:47
  • MyBatis-Plus拦截器实现数据权限控制的示例

    2022-12-10 05:10:17
  • Java生成和解析XML格式文件和字符串的实例代码

    2023-01-25 08:22:44
  • 关于springboot 配置文件中属性变量引用方式@@解析

    2023-12-08 21:50:03
  • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)

    2021-06-11 10:25:11
  • Java语言实现最大堆代码示例

    2021-09-22 14:20:44
  • 学习Java之如何正确地跳出循环结构

    2021-10-21 11:21:53
  • spring Roo安装使用简介

    2023-04-10 09:31:50
  • C#使用itextsharp生成PDF文件的实现代码

    2022-05-18 03:21:27
  • asp之家 软件编程 m.aspxhome.com