retrofit/okhttp 網路差 重複請求的問題
阿新 • • 發佈:2018-12-03
問題描述:我在使用retrofit做網路請求的時候 ,偶見多次請求
經測試 伺服器debug 網路差 出現機率比較高,導致伺服器資料重複
retrofit初始化如下:
mRetrofit = new Retrofit.Builder()
.baseUrl(Api.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
解決辦法:初步判斷 是網路差時框架主動請求 直至3次失敗
看了retrofit原始碼發現,並沒有類似處理
後來懷疑是okHttp的設定
網上查了下資料最終找到了解決方法
程式碼如下:
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.retryOnConnectionFailure(false)
.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
.build();
mRetrofit = new Retrofit.Builder()
.baseUrl(Api.BASE_URL)
.addConverterFactory (GsonConverterFactory.create())
.client(okHttpClient)
.build();