9

アプリケーションの 1 つでレトロフィットokhttpを使用しています。

Retrofit のデフォルトの動作について、適切な説明を見つけることができません。

Okhttp がクラス パス上にある場合は、自動的に使用されます。しかし、私が見る限り、デフォルトの HttpResponseCache は null です。

Retrofit と Okhttp でキャッシュを明示的に有効にする必要がありますか?

4

3 に答える 3

15

OkHttpClient v2 の正しい実装:

int cacheSize = 10 * 1024 * 1024; // 10 MiB
File cacheDir = new File(context.getCacheDir(), "HttpCache");
Cache cache = new Cache(cacheDir, cacheSize);
OkHttpClient client = new OkHttpClient.Builder()
    .cache(cache)
    .build();

ドキュメントを見る

于 2014-07-01T15:51:02.627 に答える
7

OkHttpClient を手動で作成し、好きなように構成する必要があります。この場合、キャッシュをインストールする必要があります。それが完了したら、OkClient を作成し、それをRetrofitのRestAdapter.Builderに渡します。

また、HTTP POST リクエストのキャッシュもありません。ただし、GET はキャッシュされます。

于 2014-02-06T06:36:05.083 に答える