Android與服務器網絡傳輸方式選擇

1. android傳輸方案分析和選型

       在談到android 傳輸方案,通常你們想到的就是 Socket傳輸,基於http的web服務,還有直接是http的post,get獲取方式。

       接下來是從 【網絡實現條件】,【使用範圍】, 【傳輸優缺點】, 【傳輸數據格式】,【綜合開發成本】,【應用複雜度】等角度分析這三種傳輸方式,作爲選擇的判斷條件。

下面是我對這三種傳輸方式的分析。
java

Socket傳輸 Web服務 Post,get獲取數據方式
網絡實現條件 端口:特定端口協議:TCP,UDP(目前無線網絡非80端口的支持度低。目前移動夢網只支持wap和http協議) 端口 80協議是http 端口 80協議是http
使用範圍 數據量大,格式簡單,且實時性要求高的傳輸 標準的Web服務接口,接口固定 http形式,接口固定
傳輸優缺點 速度快,數據量小 速度通常,數據量大 速度通常,數據量通常
傳輸格式 自定義數據格式 SOAP Json
開發要求 客戶端和服務器端:數據拼接,解析,數據完整驗證開發人員技術要求高 客戶端:使用第三方web服務組件,拼接參數,解析回饋數據,過程複雜。服務器端:建立web服務 開發人員技術要求:通常 客戶端:直接調用android自帶的json包解析json數據。過程簡單服務器端:生成基於httpHandler的ashx文件接口開發人員的技術要求:低
綜合成本 通常

2  登錄和註冊兩個接口實現
     2.1 登錄接口實現

Java代碼:android

 
/*用戶登錄 
* 服務器檢測用戶的帳號和密碼是否一致,並返回結果 
* 
*/ 
public static Boolean Login(String Account ,String PassWord) { 
//Step One 從服務器接口中獲取當前帳號和密碼的配對狀況 
Boolean actionResult=false; String httpUrl="http://221.181.127.43/gointel/UserHandler.ashx?Action=login&Account="+Account+"&PassWord="+PassWord; 
//httpGet 鏈接對象 
HttpGet httpRequest =new HttpGet(httpUrl); 
try { 
//取得HttpClinet對象 
HttpClient httpclient=new DefaultHttpClient(); 
// 請求HttpClient,取得HttpResponse HttpResponse 
httpResponse=httpclient.execute(httpRequest); 
//請求成功 
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK) { 
//取得返回的字符串 
String strResult=EntityUtils.toString(httpResponse.getEntity()); 
JSONObject jsonObject = new JSONObject(strResult) ; 
//獲取返回值,並判斷是否正確 
actionResult=jsonObject.getBoolean("ActionResult"); 
} 
} catch(Exception e) { 
return false; 
} 
return actionResult; 
}


        2.2 註冊接口實現web

public static Boolean Register(String account, String passWord, String niceName) { 
Boolean actionResult=false; 
String httpUrl="http://221.181.127.43/gointel/UserHandler.ashx?Action=register&Account="+account+"&PassWord="+passWord+"&NiceName="+niceName; 
//httpGet 鏈接對象 
HttpGet httpRequest =new HttpGet(httpUrl); 
try { 
//取得HttpClinet對象 
HttpClient httpclient=new DefaultHttpClient(); 
// 請求HttpClient,取得HttpResponse HttpResponse 
httpResponse=httpclient.execute(httpRequest); 
//請求成功 
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK) { 
//取得返回的字符串 
String strResult=EntityUtils.toString(httpResponse.getEntity()); 
JSONObject jsonObject = new JSONObject(strResult) ; 
//獲取返回值,並判斷是否正確 
actionResult=jsonObject.getBoolean("ActionResult"); 
} 
} catch(Exception e) { 
return false; 
} 
return actionResult;
}


Java代碼:json

相關文章
相關標籤/搜索