Android loopj:发布数据

时间:2013-02-27 18:16:35

标签: android http http-post loopj

我正在使用loopj发布一些数据。一切正常,但我有一些问题:

  • 处理没有互联网连接的情况有什么好方法?目前我只是在一段时间后重试但是这样,我必须在本地存储数据,因为如果用户关闭应用程序甚至关闭他的设备,数据将不会被发送。也许这是唯一的方式,或者你知道另一种方式吗?

  • 当我发布一些数据并且连接不好时,它有时会停止。 loopj是否有某种超时?你怎么能改变它?你怎么知道它没有提交?

我只需要一种非常稳定的方式来发布数据。您是否建议使用除loopj之外的其他库?

2 个答案:

答案 0 :(得分:1)

可靠传输数据的方法:

  1. 在SQLite数据库中插入请求
  2. 发出POST请求
  3. 删除onSuccess()
  4. 上的相应行
  5. 当互联网回来时,在SQLite上重试待处理的行(android.net.conn.CONNECTIVITY_CHANGE)
  6. 来自AsyncHttpClient类:

    private static final int DEFAULT_MAX_CONNECTIONS = 10;
    private static final int DEFAULT_SOCKET_TIMEOUT = 10 * 1000;
    private static final int DEFAULT_MAX_RETRIES = 5;
    private static final int DEFAULT_SOCKET_BUFFER_SIZE = 8192;
    

答案 1 :(得分:0)

你可以在失败时覆盖onFailure(),并处理那里的情况。

@Override
public void onFailure(Throwable e) {
    Log.d(TAG, e.toString());
}

是的,AsyncHttpClient中存在超时,默认为10秒。您可以按setTimeout(int)更改它。