2016-04-12 10 views
0

Retrofit2とOKHttpを使用してHTTP応答をキャッシュします。okHttp Cacheをバイパスしてネットワーク応答を取得し、キャッシュを更新します。

int cacheSize = 10 * 1024 * 1024; 
    Cache cache = new Cache(application.getCacheDir(), cacheSize); 

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
    OkHttpClient client = new OkHttpClient.Builder(). 
cache(cache).addNetworkInterceptor(interceptor).build(); 

Retrofit retrofit = new Retrofit.Builder() 
       .addConverterFactory(GsonConverterFactory.create(gson)) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .baseUrl(mBaseUrl) 
       .client(okHttpClient) 
       .build(); 

私はレスポンスヘッダのキャッシュ制御を取得し、私たちのバックエンドのREST APIの有効期限から午前: はここに私のコードです。

ここで、Expiresヘッダーをバイパスしてサーバーの応答を取得します。 この問題を手伝ってください。

答えて

1

は、あなたのHTTPリクエストにこのヘッダを追加します。

Cache-Control: no-cache 

あなたがレトロフィットの@HeaderまたはOkHttp interceptorとでこれを行うことができます。

+0

私はデータをリフレッシュする必要があるときはいつでも、私はサーバーを呼び出しますが、リフレッシュされたデータもデータをリフレッシュするまで次回キャッシュする必要があります。 –

関連する問題