找了好久好久终于找到一个开源的嘀咕网Android客户端源码,因为之前没做过这方面的应用,所有都得从头学。在开始这一篇的内容前,看过了很多关于android平台网络连接的文章,却老是不得要领,我觉得自己最主要的原因是:一对java.net.*等接口的不熟悉,其实说白了就是对Http协议不了解,第二是嘀咕网的api不知道怎么使用。直到看了Android之基于HTTP协议的下载这篇文章,大概的了解了Http协议的一些基本信息,再去看kirin的源码,才算真正理解了怎样实现登录的这样一个过程。所以我极力的推荐大家去看看这篇文章和这份代码。

下面这段代码就是一个初步实现嘀咕网验证登录的过程,登录成功后会显示用户的四个基本信息我这里请求的是一个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 ;
}

更多相关文章

  1. gRPC在Android中的应用、配置、生成文件及登录实现
  2. Android(客户端)与Linux(服务器端)进行TCP数据通信
  3. Android基于TCP和URL协议的网络编程示例【附demo源码下载】
  4. Android登录界面设计
  5. Android中即时通讯协议选择
  6. Android模块化之登录业务处理
  7. Android下的配置管理之道之gerrit代码服务器搭建
  8. android_项目_知识积累_mina通信(android手机登录功能)
  9. 关于多设备登录的思考与实现

随机推荐

  1. Android中strings.xml文件
  2. Android(安卓)蓝牙驱动 概要
  3. Android去標題時報錯:java.lang.IllegalSt
  4. 为什么要引入ContentProvider
  5. Android PullToRefresh 分析之四、扩展Re
  6. Android程序跳过登录界面直接进入主界面(
  7. Android中的Drawable资源——Transition
  8. Android常用实例—Alert Dialog的使用
  9. Android(安卓)圆形ImageView
  10. Android UI系统控件进阶(四)—网格视图控件