1. 程式人生 > >關於retrofit/okhttp 網路差 重複請求的問題

關於retrofit/okhttp 網路差 重複請求的問題

問題

順應時代潮流,我用了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();

大概就是這樣目前解決了問題