2013-03-26 48 views
2

在我的應用程序中,我必須發送一個大數據集返回到我們的服務器進行處理。我正在使用ksoap來處理所有請求,以便使用正常的xml屬性和屬性從服務器提取內容,但在一次調用中,我必須使用數據集來發送信息。用ksoap發送數據集

有沒有在ksoap庫爲Android,使整個過程更容易什麼?

基本上是正確的,現在我只是建造這個巨大的字符串所有這些標題,標籤和shcema

例如:

String header = "<mmAps diffgr:id=\"mmApps"+String.valueOf(count)+"\" msdata:rowOrder=\"0\" diffgr:hasChanges=\"inserted\">\n"; 
String ecmmaID = "<ECMMAID>"+c.getString(c.getColumnIndex(Apparatus.APP_ECMMAID))+"</ECMMAID>\n"; 
etc.. 

String datasetToSend = header+ecmmaID+....; 

,然後我會作出傳入大串請求

請告訴我有一些更簡單的方法來做到這一點。

而且從數據集改變走的可能性也不大,因爲它在我的掌握

+1

你有沒有考慮過使用json而不是ksoap?這很容易 – 2013-04-03 15:14:44

+0

@YasmineGreenApple,因爲我說這是超出我的控制,所以我必須使用數據集 – tyczj 2013-04-03 15:23:32

回答

2

JSON的是,你可以很容易地KSOAP使用的最佳選擇。這將是結構化的,並且比你生成的字符串好得多。在Android的

1.使相同Model類和服務器(C#.NET,Java等)

// In Android 
class MyData { 
    String someThing; 
    public getSomeThing() {} 
    //... 
} 

2.使用編碼模型類

該數據集,以JSONArray在android系統
// Create JSON Objects in loop for entire dataset 
JsonObject jo = new JsonObject(); 
jo.add(myData.getSomthing()); 
// Add all JSON Objects in JSONArray 
JSONArray jArray = new JSONArray(); 
jArray.add(jo); 

3.發送使用KSOAP

這個JSON字符串作爲
String toSendViaKsoap = jArray.toString(); 

4解碼從JSON該字符串模型類的服務器列表。

根據服務器的語言,解碼該字符串,並在這裏創建同級母語步驟1中的對象,做你想做的。 如果您有.NET服務器應用程序,那麼有大量的免費庫可供dacode json使用,包括構建json支持。但我更喜歡this之一。

希望這有助於.. :)

+0

好像我說我沒有控制服務器,所以JSON不是一個選項 – tyczj 2013-04-04 14:53:34