pcl缓存问题中的c#httpclient

pcl缓存问题中的c#httpclient,c#,caching,httpclient,C#,Caching,Httpclient,我在一个可移植类库中使用HttpClient向api发出http请求 var httpClient = new HttpClient();//also adding authorization and user agent headers HttpResponseMessage response = await httpClient.SendAsync(new HttpRequestMessage(method, requestUri)); response.EnsureSuccessS

我在一个可移植类库中使用HttpClient向api发出http请求

 var httpClient = new HttpClient();//also adding authorization and user agent headers 
 HttpResponseMessage response = await httpClient.SendAsync(new HttpRequestMessage(method, requestUri));
 response.EnsureSuccessStatusCode(); //and then handle the response after that
上述代码在接收响应时工作良好。 我的问题是,我的客户端没有根据响应中的头缓存响应

缓存控制:专用,最大使用年限=300

我无法使用WebRequestHandler将其设置为默认缓存策略,以从响应头获取缓存信息(我认为是因为它是pcl)


为什么缓存不正确?我可以在收到请求后手动执行此操作吗?

在两次调用之间是否使用相同的httpClient实例?当您将SendAsync与新的HttpRequestMessage一起使用时,我认为这会删除所有缓存授权。它类似于自定义标题覆盖。尝试使用SendAsync之外的方法,尝试使用DefaultRequestHeaders而不是新的HttpRequestMessage是的,它是同一个实例。我用wait-httpClient.GetAsync(requestUri),仍然没有cachingalso,作为响应的缓存控制头是我用fiddler检查过的东西。但是,我检查了响应中的response.Headers,CacheControl为null。这不是应该自动获得像max age这样的值吗?在调用之间是否使用相同的httpClient实例?当您将SendAsync与新的HttpRequestMessage一起使用时,我认为这会删除所有缓存授权。它类似于自定义标题覆盖。尝试使用SendAsync之外的方法,尝试使用DefaultRequestHeaders而不是新的HttpRequestMessage是的,它是同一个实例。我用wait-httpClient.GetAsync(requestUri),仍然没有cachingalso,作为响应的缓存控制头是我用fiddler检查过的东西。但是,我检查了响应中的response.Headers,CacheControl为null。这不是应该自动获得像“最大年龄”这样的值吗?