使用 POST,OKHttp 从 SQLite 发送数据到 appServer
Send Data from SQLite to appServer using POST,OKHttp
我有一个 SQLite Db 用于存储调用日志。每个条目都有一个编号、日期和持续时间。我看到有很多方法可以将数据发送到应用服务器。作为 JSON 字符串并从模型 class 对象的 ArrayList 中一个一个地发送。
处理此问题的正确方法是什么? 如何从这些数据中创建一个JSON,我已经完成了将这些数据添加到对象数组列表中的工作。由于每个条目都有很多数据,我很困惑如何做到这一点。
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;
}
Which is the correct way to approach this?
没有任何一种解决方案。这取决于您的用例场景。
为了制作 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);
}
我建议您为此使用 Retrofit,这是一个非常易于使用的库,可以节省大量时间和代码。使用 Retrofit 无缝处理序列化和 HTTP 请求。
please refer to this article for simple understanding of Retrofit
我有一个 SQLite Db 用于存储调用日志。每个条目都有一个编号、日期和持续时间。我看到有很多方法可以将数据发送到应用服务器。作为 JSON 字符串并从模型 class 对象的 ArrayList 中一个一个地发送。 处理此问题的正确方法是什么? 如何从这些数据中创建一个JSON,我已经完成了将这些数据添加到对象数组列表中的工作。由于每个条目都有很多数据,我很困惑如何做到这一点。
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;
}
Which is the correct way to approach this?
没有任何一种解决方案。这取决于您的用例场景。
为了制作 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);
}
我建议您为此使用 Retrofit,这是一个非常易于使用的库,可以节省大量时间和代码。使用 Retrofit 无缝处理序列化和 HTTP 请求。
please refer to this article for simple understanding of Retrofit