当前位置: 移动技术网 > IT编程>移动开发>Android > Android中Volley框架下保持会话方法

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

肺热,raidalerter,555集成块

公司经理把我拉出来,死马当活马医,做一个安卓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框架下保持会话方法,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网