HttpWebRequestから取得した応答をキャッシュしたいと思います。ResponseStreamとヘッダーの両方が必要です。リクエストを作成するときに使用HttpRequestCachePolicy(HttpCacheAgeControl.MaxAge, TimeSpan.FromDays(1))
するのはうまくいかないようです(何らかの理由でIsFromCacheがtrueになることはありません)。また、gzip圧縮されたデータのストリームが含まれているため、HttpWebResponse全体を手動でキャッシュするのが少し怖いです。 ASP.NETキャッシュにストリームを保存します。
応答は次のようなオブジェクトにマップされます(簡略化):
public readonly Stream Response;
public readonly string Etag;
private MyObject(Stream response, string etag)
{
this.Response = response;
this.Etag = etag;
}
オブジェクトには応答ストリームも含まれているため、ここでも同じ問題に直面します。
これをキャッシュするにはどうすればよいですか?