我有一些数据将通过 http(s) 从 Android 应用程序发送到服务器。需要按顺序发送。
是否已经存在一种对 http 请求进行排队(针对同一服务器)并重试它们直到完成(不一定成功)的方法?
我的问题是如果没有网络覆盖,http请求可能会失败。应该有某种形式的指数退避,或者一个侦听器(用于网络重新连接)来提示重试队列的头部。
我可以自己写这个,但我想检查一下我没有重新发明轮子。
有几种选择可以做到这一点:
Volley:
RequestQueue queue = Volley.newRequestQueue(ctx); // ctx is the context
StringRequest req = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String data) {
// We handle the response
}
},
new Response.ErrorListener() {
@Override
// handle response
}
);
queue.add(req);
OkHttp:
OkHttpClient client = new OkHttpClient();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
// Handle error
}
@Override
public void onResponse(Response response) throws IOException {
//handle response
}
});
或者您可以在请求中使用计数器并让服务器对它们进行排序。
如果您有兴趣了解有关 Android Http 库的更多详细信息,我最近写了一篇文章。看看here http://www.survivingwithandroid.com/2016/07/android-http-library.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)