オフライン モードでの Retrofit と OkHttp によるキャッシュ
Retrofit を OkHttp と組み合わせて利用すると、オフライン時にキャッシュされたデータにアクセスする際に問題が発生する可能性があります。考えられる問題の 1 つは、サーバーの応答ヘッダーにあります。 OkClient がキャッシュからデータを取得できるようにするには、サーバーの応答に Cache-Control: パブリック ヘッダーが含まれている必要があります。
この問題に対処するには、サーバーが適切なヘッダーを送信するように構成されていることを確認してください。リクエスト インターセプターを利用して、接続ステータスに基づいて Cache-Control ヘッダーを動的に設定することもできます。このアプローチにより、利用可能な場合はネットワークからデータをリクエストしたり、オフラインの場合はキャッシュされたデータにフォールバックしたりすることができます。
Retrofit 2.x のリファクタリング
Retrofit 2.x では、HttpResponseCache は Cache に置き換えられ、setResponseCache は setCache に名前変更されます。コードを更新するには、次の調整を行ってください:
<code class="java">Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024); OkHttpClient okHttpClient = new OkHttpClient(); if (cache != null) { okHttpClient.setCache(cache); }</code>
追加の考慮事項
キャッシュを成功させるためには、サーバー応答ヘッダー以外にも考慮すべき要素があります:
サーバー ヘッダーに対処し、これらのガイドラインに従うことで、キャッシュを効果的に活用してパフォーマンスと信頼性を向上させることができます。オフライン Retrofit アプリケーションの。
以上がRetrofit と OkHttp でオフライン キャッシュを有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。