私はアンドロイドアプリケーションでRetrofit2 &のOKHTTP3を使用しています。私の要求は、オフラインモードでアプリケーションを使用するための要求をキャッシュしなければならないことです。物事は、要求をキャッシュすることができます。しかし、ユーザーが再びオンラインになると、データはバックエンドから新しく取得されるべきであり、キャッシュされた応答を提供すべきではありません。どうすればこれを実現できますか?以下は私のネットワークインターセプタOkhttp3.0とretrofit2でネットワークリクエストをキャッシング
ネットワークインターセプタ
public class CachingInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (Util.isOnline()) {
request = request.newBuilder()
.header("Cache-Control", "only-if-cached")
.build();
} else {
request = request.newBuilder()
.header("Cache-Control", "public, max-stale=2419200")
.build();
}
Response response= chain.proceed(request);
return response.newBuilder()
.header("Cache-Control", "max-age=86400")
.build();
}
}