Android---网络交互之登录嘀咕网
2010-11-26 19:29
239 查看
找了好久好久终于找到一个开源的嘀咕网Android客户端源码,因为之前没做过这方面的应用,所有都得从头学。在开始这一篇的内容前,看过了很多关于android平台网络连接的文章,却老是不得要领,我觉得自己最主要的原因是:一对java.net.*等接口的不熟悉,其实说白了就是对Http协议不了解,第二是嘀咕网的api不知道怎么使用。直到看了Android之基于HTTP协议的下载这篇文章,大概的了解了Http协议的一些基本信息,再去看kirin的源码,才算真正理解了怎样实现登录的这样一个过程。所以我极力的推荐大家去看看这篇文章和这份代码。
下面这段代码就是一个初步实现嘀咕网验证登录的过程,登录成功后会显示用户的四个基本信息我这里请求的是一个xml数据,具体请看API,并且这里cbin的密码被我以为xxxx代替了,建议大家自己去注册一个嘀咕网账户,我这里是通过服务器返回的状态码直接判断是否登录成功,在用kirin那种方式的时候,假如是用户名和密码错误会报一个异常,也就是严格来说它的登录还是有点问题的,我这种方式就是凭我个人对于Android之基于HTTP协议的下载 中的Status code等于401的理解,不知道这样处理是否合理。
代码
下面这段代码就是一个初步实现嘀咕网验证登录的过程,登录成功后会显示用户的四个基本信息我这里请求的是一个xml数据,具体请看API,并且这里cbin的密码被我以为xxxx代替了,建议大家自己去注册一个嘀咕网账户,我这里是通过服务器返回的状态码直接判断是否登录成功,在用kirin那种方式的时候,假如是用户名和密码错误会报一个异常,也就是严格来说它的登录还是有点问题的,我这种方式就是凭我个人对于Android之基于HTTP协议的下载 中的Status code等于401的理解,不知道这样处理是否合理。
代码
private boolean LoginDidu(){ String spec="http://api.minicloud.com.cn/account/verify.xml?isAllInfo=false"; try { URL url=new URL(spec); HttpURLConnection connect=(HttpURLConnection)url.openConnection(); //设置读取服务器资源权限 connect.setDoOutput(true); //设置连接服务器超时时长 connect.setConnectTimeout(10*1000); //设置从服务器读取资源超时时长 connect.setReadTimeout(30*1000); //设置请求方法 connect.setRequestMethod("GET"); //Authorization请求报头域主要用于证明客户端有权查看某个资源 //用于嘀咕网用户认证(详情请看嘀咕API:http://code.google.com/p/digu-api/wiki/DiguApi) String user="cbin:xxxx"; connect.setRequestProperty("Authorization", "Basic "+Base64.encodeBytes(user.getBytes())); int code=connect.getResponseCode(); Log.v(tag, "code----------"+code); if(code>=0 && code<299){ connect.connect(); InputStream is=connect.getInputStream(); InputStreamReader isr=new InputStreamReader(is, "utf-8"); BufferedReader br=new BufferedReader(isr); StringBuffer sb=new StringBuffer(); String readLine=null; while((readLine=br.readLine())!=null){ sb.append(readLine).append("\n"); } showText=new String(sb.toString().getBytes("utf-8"), "utf-8"); return true; }else if(code==401){ //服务器返回状态码如果等于401表示授权未通过(也就是登录失败) return false; } Log.v(tag, "code-----------"+code); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; }
相关文章推荐
- Android---网络交互之登录嘀咕网
- android 基础 网络交互,思路
- JSON在Android网络交互中的使用方法
- Android 轻松实现网络交互模板
- Servlet和Android网络交互基础(3)
- Android使用DefaultHttpClient访问要登录的网络
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- Android 轻松实现网络交互模板
- android网络交互之DNS优化知识整理
- SSM + Android 网络交互的那些事
- 简单的Android服务端和客户端登录交互(服务端)
- Android 网络交互
- Android中利用httpclient进行网络通信的方法(以用户登录为例说明)
- Android初级开发(九)——网络交互—WebView的使用
- Android-SpinKit 加载进度条(登录,网络请求)
- Android 网络交互(三)之TCP实现和原理分析
- Android初级开发(九)——网络交互—解析XML格式数据
- 一个android网络登录实例代码
- Java基础知识强化之网络编程笔记20:Android网络通信之 Android常用OAuth登录和分享
- Android游戏开发5:游戏登录界面Demo(Activity间的切换和数据交互)