什么是.NET Core中WebRequestHandler的替代品?

时间:2017-04-07 07:46:35

标签: .net-core system.net.httpwebrequest

我使用 WebRequestHandler 在我的完整堆栈.NET应用程序中设置 CachePolicy AuthenticationLevel 。现在我将我的应用程序迁移到.NET核心,无法找到这些属性或WebRequestHandler的替代方法。有帮助吗?以下是我的用法:

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

1 个答案:

答案 0 :(得分:5)

的CachePolicy:

.NET Core中没有与CachePolicy等效的功能。但是,.NET Core等同于RequestCacheLevel.BypassCache。我在this GitHub issue确认了这一点。

因此,虽然没有内置的CachePolicy,但这种设计使您能够使用您喜欢的任何策略在HttpClient之上构建自己的缓存。

AuthenticationLevel:

.NET Core中的WebRequest提供了AuthenticationLevel属性,但如果您需要使用HttpClient,那么这对您没什么帮助。

您可以实现自定义HttpMessageHandler以传递到支持AuthenticationLevel的HttpClient。为了更容易实现,您可以将其基于现有的HttpMessageHandler,例如Windows one