And*_*ott 6 .net c# http dotnet-httpclient
使用HttpClient和HttpResponseMessage时,WebResponse.IsFromCache的等价物是什么?
我可以看一下响应中是否有一些HTTP头?
我可以问一下你想达到什么目的吗?是否试图避免缓存?
询问的原因是我已经查看了HttpClient(特别是HttpClientHandler)的源代码和源代码HttpWebResponse,并且我不相信您可以从标题中获取此信息。
HttpClient/HttpClientHandler确实在内部使用 HttpWebResponse,但它不会公开来自以下位置的所有属性HttpWebResponse:
private HttpResponseMessage CreateResponseMessage(HttpWebResponse webResponse, HttpRequestMessage request)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(webResponse.StatusCode);
httpResponseMessage.ReasonPhrase = webResponse.StatusDescription;
httpResponseMessage.Version = webResponse.ProtocolVersion;
httpResponseMessage.RequestMessage = request;
httpResponseMessage.Content = (HttpContent) new StreamContent((Stream) new HttpClientHandler.WebExceptionWrapperStream(webResponse.GetResponseStream()));
//this line doesnt exist, would be nice
httpResponseMessage.IsFromCache = webResponse.IsFromCache;// <-- MISSING!
...
}
Run Code Online (Sandbox Code Playgroud)
所以我认为你的选择是:
a)查看源代码以HttpWebRequest确定逻辑IsFromCache并以某种方式对其进行改造HttpClient(这甚至可能不可能,取决于逻辑实际执行/需要的内容)
b) 请求 ASP.NET 团队将此属性包含在 HttpResponseMessage 中。要么直接作为财产,要么他们可以“保留”HttpWebResponse
这两种选择都不是很抱歉,因此我最初的问题是,你想实现什么目标?
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |