2013-08-01 2 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, как вы показываете .. еще подробнее ... – SilentKiller

+0

Предположим, у вас есть запись 10K в базе данных Android, и вам нужно отправить их на сервер. Вы отправляете их один за другим с помощью этого метода или есть лучший способ отправить их в целом сразу? –

+0

вы можете отправить весь файл на сервер вместо отправки записей один за другим .. вы хотите отправить весь файл базы данных или вид файла txt ... ?? – SilentKiller

ответ

1

Не уверен, что именно то, что вы хотите, но одно решение использовать в дополнение к JSONArray к тому, что вы сейчас делаете.

Вы бы и впредь создавали JSONObjects точно так же, как и вы, но вместо отправки сразу же добавьте его в JSONArray. Затем на любой итерации вы хотите (скажем, после того, как вы добавили 100 JSONObjects), отправьте JSONArray на сервер.

+0

Звучит неплохо. Как насчет предела jsonarray? Могу ли я сразу же добавить 10K и отправить их на сервер? –

+0

Единственные ограничения на JSONArray - это ваша доступная память. Я не думаю, что хранение 10k JSONObjects в памяти кажется хорошей идеей. Возможно, вам захочется заглянуть в запись всего этого в файл, а затем отправить его таким образом. – btse

+0

Они уже хранятся в базе данных, но посылка по одному расходует время –

Смежные вопросы