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

11

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

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

2
你可以尝试使用HttpClientHandler类(将其作为参数传递给HttpClient .ctor)。但它没有CachePolicy和AuthenticationLevel。我猜你的解决方案可能不在一个处理程序实例中。顺便说一下,我使用这个来绕过SSL证书错误。 - Andrei Floroiu
1个回答

8

缓存策略:

.NET Core中没有CachePolicy的等效项。但是,.NET Core等效于RequestCacheLevel.BypassCache。我在这个GitHub问题中确认了这一点。

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

身份验证级别:

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

您可以实现一个自定义的HttpMessageHandler来传递到HttpClient中,该处理程序支持AuthenticationLevel。为了更容易实现,您可以基于现有的HttpMessageHandler(例如Windows one)实现它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接