57

WebAPI でパブリック キャッシュ サーバーのキャッシュ制御ヘッダーを設定する最良の方法は何ですか?

サーバーでの OutputCache コントロールには興味がありません。CDN 側以降でのキャッシュの制御を検討しています (特定の URL に対して応答を無期限にキャッシュできる個別の API 呼び出しがあります)。 WebAPI のリリース前のバージョンを参照する (したがって、System.Web.HttpContext.Current.Reponse.Headers.CacheControl のように、もはや存在しないように見えるものを参照する) か、いくつかの http ヘッダーを設定するだけで非常に複雑に見えます。

これを行う簡単な方法はありますか?

4

4 に答える 4

81

キャッシュ制御ヘッダーは、このように設定できます。

public HttpResponseMessage GetFoo(int id)
{
    var foo = _FooRepository.GetFoo(id);
    var response = Request.CreateResponse(HttpStatusCode.OK, foo);
    response.Headers.CacheControl = new CacheControlHeaderValue()
        {
            Public = true,
            MaxAge = new TimeSpan(1, 0, 0, 0)
        };
    return response;
}
于 2013-04-10T01:33:13.663 に答える