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,框架
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
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
![](https://img.aspxhome.com/file/2023/1/138311_0s.png)
C语言中的数据整除判断问题
2023-08-28 20:36:09
![](https://img.aspxhome.com/file/2023/8/127548_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/7/126337_0s.png)
浅谈java项目与javaweb项目导入jar包的区别
2023-11-11 11:06:19
Java实现短信验证码的示例代码
2023-11-09 03:22:47
![](https://img.aspxhome.com/file/2023/0/58930_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/6/102176_0s.jpg)
Java语言实现最大堆代码示例
2021-09-22 14:20:44
学习Java之如何正确地跳出循环结构
2021-10-21 11:21:53
![](https://img.aspxhome.com/file/2023/4/78244_0s.webp)
spring Roo安装使用简介
2023-04-10 09:31:50
![](https://img.aspxhome.com/file/2023/0/119120_0s.png)
C#使用itextsharp生成PDF文件的实现代码
2022-05-18 03:21:27