System.Net.Http.HttpClient禁用缓存(.Net Standart项目)

时间:2018-11-21 09:21:34

标签: caching httpclient

在我的“ .Net Standart”项目中,我使用的是“ System.Net.Http.HttpClient”。如何禁用httpClient中的所有缓存(尤其是请求缓存)?

如果服务器发送的响应没有缓存头,则问题解决。但是我想在客户端做这个。我想完全禁用所有缓存。

谢谢。

编辑:看来我可以使用WebRequestHandler,但这在“ .net standart”中不存在。我只能使用HttpClientHandler,但是HttpClientHandler没有关于缓存的任何选择。

2 个答案:

答案 0 :(得分:2)

您可以在HttpClient中使用CacheControlHeaderValue

httpClient.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue
{
  NoCache = true
}

有关更多信息,请参见 https://docs.microsoft.com/en-us/previous-versions/visualstudio/hh137994(v%3Dvs.118)

答案 1 :(得分:0)

我尽了一切,这对我有用。以防万一有些人无法使被接受的答案起作用:

var uri = new Uri("http://localhost:8080/v?time=" + DateTime.Now);
var client = new HttpClient();
var response = await client.GetAsync(uri);