处理网络不良连接请求的正确方法是什么?

时间:2018-06-07 09:54:48

标签: android http networking retrofit2

这应该是一般问题,但到目前为止我还没有在任何地方听到或读过它。

所以问题是,当我们从移动应用程序向服务器发送网络请求(POST请求很关键)时,有时用户会在收到响应和retrofit之前与Internet断开连接(android网络库) )尽管请求已发送到服务器,但仍会响应连接错误。因此,服务器为该请求创建了一个新条目,但用户并未意识到这一点。

在看到连接错误后,用户再次尝试创建相同的条目,我们最终会有重复的条目。

有什么可能的解决方案?虽然我们的应用程序是基于Android构建的,但这个问题应该是通用的,许多开发人员都知道。

我们正在禁用应用程序中的按钮,直到从服务器收到响应,因此快速连续点击两次按钮不是问题。

  

我们在想什么

  • 从服务器获取任何新请求的UUID,并为每个请求发送UUID,以便服务器在使用后丢弃UUID。

2 个答案:

答案 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"连接..."。