使用 POST、OKHttp 将数据从 SQLite 发送到 appServer

Posted

技术标签:

【中文标题】使用 POST、OKHttp 将数据从 SQLite 发送到 appServer【英文标题】:Send Data from SQLite to appServer using POST,OKHttp 【发布时间】:2019-07-26 13:04:17 【问题描述】:

我有一个存储通话记录的 SQLite 数据库。每个条目都有一个数字日期持续时间。我已经看到有很多方法可以将数据发送到应用服务器。作为 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;

【问题讨论】:

【参考方案1】:

解决这个问题的正确方法是什么?

没有任何一种解决方案。这取决于您的用例场景。

为了制作 JSON ,你可以在 ArrayList&lt;PhNumber&gt; 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);

【讨论】:

我应该将 jsonArray 转换为字符串,然后再将其添加到正文中,以发布吗? @Lenzman 这取决于您的 api 。如果他们期望字符串,那么是的 @Lenzman 它解决了你的问题。你可以接受答案【参考方案2】:

我建议您为此使用Retrofit,这是一个非常易于使用的库,可以节省大量时间和代码。使用 Retrofit 无缝处理序列化和 HTTP 请求。

please refer to this article for simple understanding of Retrofit

【讨论】:

酷,我去看看

以上是关于使用 POST、OKHttp 将数据从 SQLite 发送到 appServer的主要内容,如果未能解决你的问题,请参考以下文章

OkHttp 和 Retrofit 无限 Post 请求在后台

安卓 原生okhttp使用get与post获取网络数据

如何使用 OKHTTP 发出 post 请求?

OKhttp PUT 示例

okhttp 请求成功后怎么的返回数据

Android进阶:5发送post请求json数据格式以及okhttp框架的使用