2017-04-07 1 views
3

J'utilisait le WebRequestHandler pour le réglage du CachePolicy et AuthenticationLevel dans ma pile complète application .NET. Maintenant, je migre mon application vers le noyau .NET et ne trouve pas d'alternative à ces propriétés ou au WebRequestHandler. De l'aide? À la suite de mon utilisation:Quelle est l'alternative à WebRequestHandler dans .NET Core?

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

Vous pouvez essayer la classe HttpClientHandler (passez-la en tant qu'arg à HttpClient .ctor). Mais il n'a pas CachePolicy et AuthenticationLevel. Je suppose que votre solution ne réside pas dans une instance de gestionnaire. BTW, je l'utilise pour contourner les erreurs de certificat SSL. –

Répondre

3

CachePolicy:

Il n'y a pas d'équivalent à CachePolicy dans .NET de base. Toutefois, .NET Core est équivalent à RequestCacheLevel.BypassCache. J'ai confirmé cela au this GitHub issue.

Donc, même s'il n'y a pas de CachePolicy intégré, cette conception vous permet de construire votre propre cache au-dessus de HttpClient en utilisant n'importe quelle politique que vous aimez.

AuthenticationLevel:

WebRequest dans .NET Core offre une propriété AuthenticationLevel, mais cela ne vous aidera pas beaucoup si vous avez besoin d'utiliser HttpClient.

Vous pouvez implémenter un HttpMessageHandler personnalisé pour passer dans HttpClient qui prend en charge AuthenticationLevel. Pour le rendre plus facile à implémenter, vous pouvez le baser sur un HttpMessageHandler existant tel que le Windows one.