關於retrofit/okhttp 網路差 重複請求的問題
阿新 • • 發佈:2019-02-09
問題
順應時代潮流,我用了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();
大概就是這樣目前解決了問題