UWP应用程序中的HttpClient缓存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP应用程序中的HttpClient缓存相关的知识,希望对你有一定的参考价值。
我拥有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中的缓存,还是我必须自己完成?
答案
HttpClient已经(好)缓存了。如果默认缓存行为不够,您可以通过HttpCacheControl类进一步控制缓存,该类分隔读写行为。
更重要的是知道如何使用您的HttpClient。即使它实现了IDisposable,你也不应该处理它,而是通过你的整个应用程序保持一个HttpClient对象,它是designed for re-use。
HttpClient不做的是在断开连接时返回缓存的结果。因此,还有其他库,如Akavache,它创建一个离线键值存储。
以上是关于UWP应用程序中的HttpClient缓存的主要内容,如果未能解决你的问题,请参考以下文章
详解 UWP (通用 Windows 平台) 中的两种 HttpClient API
带有json字符串的后台任务中的UWP Httpclient postasync
UWP HttpClient 存储 cookie 直到应用被卸载
HttpClient.SendAsync 在 Xamarin.Forms Android 上引发 ObjectDisposedException,但在 UWP 上却没有