httpclient - .net core 3.1 和 .net 5 之间的 HttpClient 行为不同
问题描述
以下代码使用 Kerberos 身份验证从 WebHDFS 实例检索 JSON 文档:
HttpClientHandler clientHandler = new()
{
Credentials = CredentialCache.DefaultNetworkCredentials,
DefaultProxyCredentials = CredentialCache.DefaultNetworkCredentials
};
using HttpClient client = new(clientHandler);
const string Url = "https://x.com:50470/webhdfs/v1?op=GETHOMEDIRECTORY";
string responseBody = await client.GetStringAsync(Url);
此代码在 .net core 3.1 中运行良好,并使用当前用户的凭据进行身份验证。但在 .net 5 上,完全相同的代码会产生 403 错误,并带有java.util.NoSuchElementException
由 WebHDFS 返回的消息。
我检查了几份文档(例如这个),试图了解可能导致问题的原因,但没有找到任何东西。
我也尝试过使用:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
但这没有帮助。
解决方案
推荐阅读
- dart - 我可以使用没有构造函数的类吗?
- docker - docker --cache-from 是否应该导致下载多个 sha-hashes?
- powershell - Powershell Import-Csv Getting data
- python - 如何在 python 代码中访问 terraform 变量?
- pandas - 将参数添加到应用的数据框函数
- css - CSS - 如何使移动过渡动画响应?
- laravel - 使用反射将服务注入 Laravel 8 上的服务
- flutter - Flutter SingleChildScrollView 在 ListView 上不起作用
- sql - 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。错误
- html - 如何自定义雪佛龙向下 [已解决]