HttpClientとHttpResponseMessageを使用する場合、 WebResponse.IsFromCacheに相当するものは何ですか?
応答に確認できる HTTP ヘッダーはありますか?
HttpClientとHttpResponseMessageを使用する場合、 WebResponse.IsFromCacheに相当するものは何ですか?
応答に確認できる HTTP ヘッダーはありますか?
参考までに: Windows.Web.Http HttpClient (Windows 8.1 アプリ開発を対象とした同様の API) には、結果の送信元を指定する HttpResponseMessage.Source フィールドが含まれています (一般的な値は「キャッシュ」と「ネットワーク」です)。
Windows.Web.Http クラスは、C# やその他の .NET 言語、C++、および JavaScript (Windows アプリ ストアのような WwaHost アプリとして実行する場合) から使用できます。
何を達成しようとしているのか聞いてもいいですか?キャッシュを回避しようとしていますか?
質問する理由は、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!
...
}
したがって、私が見ているあなたのオプションは次のとおりです。
a)のソースコードを見てHttpWebRequest
、ロジックを決定し、IsFromCache
これを何らかの形で改造しますHttpClient
(ロジックが実際に何をするか/必要とするかによって、これは不可能かもしれません)
b) ASP.NET チームに、このプロパティを HttpResponseMessage に含めるよう依頼してください。プロパティとして直接、またはおそらく「保持」することができますHttpWebResponse
これらのオプションはどちらもそれほど申し訳ありません。したがって、最初の質問です。何を達成しようとしていますか?