2017-04-07 122 views
3

我用的是WebRequestHandler在我的全棧.NET應用程序設置的CachePolicyAuthenticationLevel。現在我正在將我的應用程序遷移到.NET核心,無法找到這些屬性或WebRequestHandler的替代方案。任何幫助?以下是我的使用:.NET Core中WebRequestHandler的替代選擇是什麼?

 var httpClientHandler = new WebRequestHandler 
     { 
      UseProxy = true, 
      UseCookies = false, 
      CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore), 
      AuthenticationLevel = AuthenticationLevel.MutualAuthRequired 
     }; 
+2

您可以嘗試HttpClientHandler類(將它作爲arg傳遞給HttpClient .ctor)。但它沒有CachePolicy和AuthenticationLevel。我想你的解決方案可能不在於一個處理程序實例。順便說一句,我用它來繞過SSL證書錯誤。 –

回答

3

的CachePolicy:

沒有相當於中的CachePolicy .NET的核心。但是,.NET Core相當於RequestCacheLevel.BypassCache。我確認在this GitHub issue

因此,雖然沒有內置的CachePolicy,但此設計使您可以使用您喜歡的任何策略在HttpClient之上構建自己的緩存。

AuthenticationLevel:

的WebRequest在.NET核心提供AuthenticationLevel屬性,但不會幫助你多,如果你需要使用的HttpClient。

你可以實現一個自定義的HttpMessageHandler傳遞給支持AuthenticationLevel的HttpClient。爲了更容易實現,您可以將其基於現有的HttpMessageHandler,例如Windows one

相關問題