这应该是一般问题,但到目前为止我还没有在任何地方听到或读过它。
所以问题是,当我们从移动应用程序向服务器发送网络请求(POST
请求很关键)时,有时用户会在收到响应和retrofit
之前与Internet断开连接(android网络库) )尽管请求已发送到服务器,但仍会响应连接错误。因此,服务器为该请求创建了一个新条目,但用户并未意识到这一点。
在看到连接错误后,用户再次尝试创建相同的条目,我们最终会有重复的条目。
有什么可能的解决方案?虽然我们的应用程序是基于Android构建的,但这个问题应该是通用的,许多开发人员都知道。
我们正在禁用应用程序中的按钮,直到从服务器收到响应,因此快速连续点击两次按钮不是问题。
我们在想什么
答案 0 :(得分:0)
您可以在应用程序类中缓慢连接的扩展中延长超时限制(初始化 OkHttpClient 的位置)将连接超时限制放在那里。
// OkHttpClient client = httpClient.addInterceptor(interceptor).build();
//use this client object
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(600, TimeUnit.SECONDS)
.writeTimeout(650, TimeUnit.SECONDS)
.build();
答案 1 :(得分:0)
检查Volley库:https://developer.android.com/training/volley/
Volley是一个HTTP库,它使Android应用程序的网络更容易,最重要的是,更快。
如果服务器没有响应您的请求并且应用程序强制关闭,请使用try-catch异常和Toast"连接..."。