2017-08-14 4 views
2

私はWebApiサーバー(asp.netコアアプリケーション)とクライアント(UWPアプリケーション)の両方を所有しています。UWPアプリでのHttpClientキャッシュ

私はUWPアプリケーションからHttpClientを使用してWebApiサービスを呼び出します。

一部のリソースは読み取り専用であるため、キャッシュすることができます。

[ResponseCache(Duration = 60*60*12, VaryByQueryKeys = new[] { "id" }, Location = ResponseCacheLocation.Client)]` 
[HttpGet("{id}")] 
public IActionResult Get(string id) { ... } 

それはUWPアプリでのHttpClientでキャッシュを有効にすることは可能ですか、私は自分でそれをしなければならないのですか?

+0

どのような種類のキャッシュを使用したいですか?シンプルな組み込み機能を使用したくない場合は、クライアントで簡単にキャッシュできる外部ライブラリがあります。例:[CacheCow](https://github.com/aliostad/CacheCow)および[Cashew] –

答えて

0

HttpClientには、既に(良い)キャッシュ自体があります。デフォルトのキャッシュ動作では不十分な場合は、読み取りと書き込みの動作を分離するHttpCacheControlクラスを使用してキャッシュをさらに制御できます。

さらに重要なことは、HttpClientの使用方法を知ることです。 IDisposableを実装しているにもかかわらず、それを破棄しないでください。単一のHttpClientオブジェクトは、アプリケーション全体を通して生き続けてください。designed for re-useです。

HttpClientが実行しないものは、切断中にキャッシュされた結果を返します。したがって、オフラインのキー値ストアを作成するAkavacheのような他のライブラリがあります。

+0

私はHttpClientを処分しません、私はシングルトンを使用します。 Webサーバーへの同じ要求(観察されたtrought Fiddler)。どうして? – Liero

関連する問題