Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android---網絡交互之登

Android---網絡交互之登

編輯:Android開發實例

找了好久好久終於找到一個開源的嘀咕網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. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved