导航
  • 主页
  • 音视频
  • Camera
  • UI
  • 协议
  • SDK
  • NDK
  • Flutter
  • ADB
  • Android Studio
  • 模拟器
  • 问答

安卓客户端登陆验证服务器,怎么记住客户端的登陆状态

guozh 2012-05-21 06:23:33
用了HttpClient登陆服务器端(通过URL返回Json),并顺利通过验证成功
安卓客户端进入了系统,但是在访问服务器资源(Post或get)是,却又遇到了服务器重新需要验证
“没有权限”,改怎样让服务器打算记住,我通过URL已经验证过了,不需要重新验证就可以直接取得数据。
比较着急,找不到问题所在。

请各位大侠请教,高分相送
...全文
739 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
都是阳光 2013-06-25
能不能把你的这个项目里面登录到服务器的这部分给看分享一下,我也是新手,现在需要和你差不多的
回复
guozh 2012-05-24
每次提交数据都提交提交了Cookie
private static final String USER_AGENT=xxxandroid/1.0(compatible;xxxandroidclient 1.0;android 2.2;)";
public byte[] getBytesByPost(String url,List<NameValuePair> paramsList) throws IllegalStateException, IOException{

HttpParams params = new BasicHttpParams();
DefaultHttpClient client = new DefaultHttpClient(params);
HttpPost post = new HttpPost(url);
String strCook=getCookieString();
post.setHeader("Cookie", strCook);
post.setHeader("User-Agent", USER_AGENT);
HttpResponse response = null;
post.setEntity(new UrlEncodedFormEntity(paramsList));
response = client.execute(post);
resetCookie(client.getCookieStore().getCookies());
InputStream is = response.getEntity().getContent();
System.out.println("ByPost:getBytesByPost");
return Utility.streamToBytes(is);
}
上面是我们提交数据时的方法,请大家指点。
各位有没有这方面的源码,参考一下哈,谢谢了
回复
wo17796452 2012-05-22
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("添加的键", 添加的值);
验证通过后每一次的访问带过去一个可以验证成功的码,每次访问的时候进行验证一下就可以了
回复
fire_fire_fire 2012-05-22
如果你不是socket,那么你要明确一点,验证是实时的。包括oauth认证在内貌似都是一样。那么接下来就是安全性和效率的问题了

几个方案供参考:
1.登陆成功后返回客户端一个令牌(你自己定义类似身份证明的东西),服务端同时将这个令牌存放在cookie或

session中,客户端进入系统后再获取数据就靠令牌去获取,如果令牌对就返回数据。这样可以避免服务端与数据

库的交互次数,提高效率,但是要做好服务端的安全性工作,因为你的身份数据有可能是放在cookie中的

2.每次获取数据都将用户名和密码提交给服务端验证一下。但是密码除了第一次登录是用户输入的原始密码

外,最好后面都用加密过后的密码登录和获取数据
回复
qdkfriend 2012-05-22
做个cookie 放到httphead里 然后验证一下。
回复
浮生若梦丶 2012-05-21
老火,都没有人回答,我今天才接触android的,希望大家互相交流
回复
发动态
发帖子
Android
创建于2009-10-09

7.8w+

社区成员

移动平台 Android
申请成为版主
社区公告
暂无公告