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

uwp 解析或反序列化 httpclient 响应

带有json字符串的后台任务中的UWP Httpclient postasync

HttpClient 在上传之前读取整个文件。 UWP

UWP HttpClient 存储 cookie 直到应用被卸载

HttpClient.SendAsync 在 Xamarin.Forms Android 上引发 ObjectDisposedException,但在 UWP 上却没有