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

What's the alternative to WebRequestHandler in .NET Core?

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

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

缓存策略:

.NET Core 中没有 CachePolicy 的等价物。但是,.NET Core 相当于 RequestCacheLevel.BypassCache。我在 this GitHub issue.

中确认

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

身份验证级别:

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

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