System.Net.Http.HttpClient 禁用缓存(.Net 标准项目)
System.Net.Http.HttpClient Disable Caching (.Net Standart Project)
在我的 .NET Standard 项目中,我使用 System.Net.Http.HttpClient
。如何禁用 HttpClient
中的所有缓存(尤其是请求缓存)?
如果服务器发送没有缓存的响应header问题解决。但我想在客户端做这个。我想完全禁用所有缓存。
谢谢。
编辑:看起来我可以使用 WebRequestHandler
但这在 .NET 标准中不存在。我只能使用 HttpClientHandler
但 HttpClientHandler
没有任何关于缓存的选项。
您可以在 HttpClient 中使用 CacheControlHeaderValue
using System.Net.Http.Headers;
httpClient.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue
{
NoCache = true
}
更多信息你可以看看
https://docs.microsoft.com/en-us/dotnet/api/system.net.http.headers.cachecontrolheadervalue
我什么都试过了,这个对我有用。以防万一某些人无法使接受的答案有效:
var uri = new Uri("http://localhost:8080/v?time=" + DateTime.Now);
var client = new HttpClient();
var response = await client.GetAsync(uri);
在我的 .NET Standard 项目中,我使用 System.Net.Http.HttpClient
。如何禁用 HttpClient
中的所有缓存(尤其是请求缓存)?
如果服务器发送没有缓存的响应header问题解决。但我想在客户端做这个。我想完全禁用所有缓存。
谢谢。
编辑:看起来我可以使用 WebRequestHandler
但这在 .NET 标准中不存在。我只能使用 HttpClientHandler
但 HttpClientHandler
没有任何关于缓存的选项。
您可以在 HttpClient 中使用 CacheControlHeaderValue
using System.Net.Http.Headers;
httpClient.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue
{
NoCache = true
}
更多信息你可以看看 https://docs.microsoft.com/en-us/dotnet/api/system.net.http.headers.cachecontrolheadervalue
我什么都试过了,这个对我有用。以防万一某些人无法使接受的答案有效:
var uri = new Uri("http://localhost:8080/v?time=" + DateTime.Now);
var client = new HttpClient();
var response = await client.GetAsync(uri);