2013-08-01 83 views
1

我知道如何將數據從Android發送到服務器。一個例子可能是使用下面的代碼片段。但是,我擔心的是,如果您需要發送大量數據,則逐個發送所有數據會非常耗時。有沒有更好的方法來製作一個捆綁(壓縮)你打算髮送的數據並一次發送它們?Android將Android的數據作爲包發送到服務器

ArrayList<String> stringData = new ArrayList<String>(); 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
ResponseHandler <String> resonseHandler = new BasicResponseHandler(); 
HttpPost postMethod = new HttpPost(ServerURL); 

JSONObject json = new JSONObject(); 
json.put("Item1",Item1); 
json.put("Item2",Item2); 
json.put("Item3",Item3); 
postMethod.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8"))); 
String response = httpClient.execute(postMethod,resonseHandler); 
+0

您可以創建JSON併發送該json,如您所示.. else詳細說明更多... – SilentKiller

+0

假設您的android數據庫中有10K條目,並且您需要將它們發送到服務器。你是使用這種方法一個接一個地發送它們,還是有更好的方法一次發送它們? –

+0

你可以發送整個文件到服務器而不是逐個發送記錄..你想發送整個數據庫文件或一種txt文件...... ?? – SilentKiller

回答

1

不是你想知道究竟是什麼,但一個解決方案是使用另外一個JSONArray當前你在做什麼。

您將繼續按照原樣創建JSONObjects,但不是立即發送,而是將其添加到JSONArray。然後在你想要的任何迭代中(比如在你添加了100 JSONObjects之後),發送JSONArray到服務器。

+0

聽起來不錯。 jsonarray的限制怎麼樣?我可以一次放入10K條目並將它們發送到服務器嗎? –

+0

JSONArray上的唯一限制是您的可用內存。我不認爲在內存中存儲10k JSONObjects似乎是個好主意。您可能需要考慮將所有內容寫入文件,然後以此方式發送。 – btse

+0

它們已存儲在數據庫中,但逐個發送消耗時間 –

相關問題