OkHttp を使用して Android オフライン キャッシュ メソッドを実行しようとしています。流れは次のようになります。
- ヘッダー フィールド
if-none-catched
に ETag の空の文字列を含む HTTP 要求をサーバーに送信すると、サーバーは適切な ETag を返します。 - 次に、ETag を保存し、応答をキャッシュします。
- 次回同じサービス呼び出しを起動すると、同じ ETag が取得され、それが HTTP 要求ヘッダーに設定されます。ETag が同じ場合、サーバーは HTTP 304 を返します。
私の問題は、ETag をどのように保存および取得できるかということです。OkHttp のデフォルトは処理されますか、それとも SQLite に保存する必要がありますか? OkHttp実装ETagサンプルコードについてGoogleで調べ続けていますが、取得できるのは通常のキャッシュ方法だけです。私が参照するリンク:
- Java の HttpURLConnection を使用して「条件付き get」を実行しようとしていますが、304 ステータス コードを取得できません。
- https://github.com/square/okhttp/wiki/Interceptors
- Android で OkHttp のキャッシュを設定する正しい方法
- https://gist.github.com/polbins/1c7f9303d2b7d169a3b1#file-restcontroller-java-L45
これまでのところ、私が達成したのは、初回のサービス呼び出しのキャッシュのみですが、サーバーから最新のデータを取得することはもうありません。誰かが何らかのガイダンスを提供できるか、または ETag を処理if-none-catch
し、OkHttp が共有するために動的に処理する良い例を見つけた場合に感謝します。ご不明な点がございましたら、お気軽にお問い合わせください。