UWP应用程序中的HttpClient缓存

问题描述 投票:3回答:1

我拥有WebApi服务器(asp.net核心应用程序)和客户端(UWP应用程序)。

我使用UWP应用程序中的HttpClient调用Web Api服务。

有些资源是只读的,因此可以缓存:

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

是否可以在UWP应用程序中启用HttpClient中的缓存,还是我必须自己完成?

c# caching asp.net-core uwp dotnet-httpclient
1个回答
0
投票

HttpClient已经(好)缓存了。如果默认缓存行为不够,您可以通过HttpCacheControl类进一步控制缓存,该类分隔读写行为。

更重要的是知道如何使用您的HttpClient。即使它实现了IDisposable,你也不应该处理它,而是通过你的整个应用程序保持一个HttpClient对象,它是designed for re-use

HttpClient不做的是在断开连接时返回缓存的结果。因此,还有其他库,如Akavache,它创建一个离线键值存储。

© www.soinside.com 2019 - 2024. All rights reserved.