Отправка данных из SQLite в appServer с помощью POST, OKHttp - PullRequest
0 голосов
/ 05 марта 2019

У меня есть SQLite Db, в котором хранятся журналы вызовов.Каждая запись имеет число , дату и длительность .Я видел, что существует много способов отправки данных на сервер приложений.В виде строки JSON и отправки по одному из ArrayList объектов класса модели. Как правильно подойти к этому как я могу создать JSON из этих данных , Я сделал столько же, сколько получил эти данные в ArrayList объектов .Поскольку в каждой записи много данных, я не понимаю, как это сделать.

    public ArrayList<PhNumber> getCallLogs() {

    ArrayList<PhNumber> callLogList;
    callLogList = new ArrayList<PhNumber>();

    String selectQuery = "SELECT  * FROM callInfo where syncStatus = '" + "no" + "'";

    SQLiteDatabase database = this.getWritableDatabase();
    Cursor cursor = database.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {
            callLogList.add(new PhNumber(Integer.parseInt(cursor.getString(0)), cursor.getString(1),
                    cursor.getString(2),
                    cursor.getString(3),
                    cursor.getString(4)));

            Log.e("DbHelper:getCallLogs", callLogList.toString());
        } while (cursor.moveToNext());
    }
    return callLogList;
}

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Я бы предложил вам использовать Retrofit для этого, библиотеку, которая очень проста в использовании, экономит много времени и кода.Сериализация и HTTP-запросы обрабатываются без проблем с помощью Retrofit.

пожалуйста, обратитесь к этой статье для простого понимания Retrofit

0 голосов
/ 05 марта 2019

Как правильно подойти к этому?

Единого решения не существует.Это зависит от вашего сценария использования.

Для создания JSON вы можете сделать это после получения данных в ArrayList<PhNumber> callLogList

JSONArray jsonArray = new JSONArray();

  for (int i = 0; i < callLogList.length(); i++) {
 JSONObject jsonobject= new JSONObject();
 jsonobject.put("data1",callLogList.get(i).get); //I dont know the field name of your PhNumber so fill accordingly
 jsonobject.put("data2",callLogList.get(i).get);

 jsonArray.put(jsonobject);
}
...