- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
连接西数网站时遇到如下异常:
website of Western digital
22:02:34,803 | HttpGrabber | DEBUG | Grabbing: GET https://shop.westerndigital.com/de-de/products/internal-drives/wd-red-sata-2-5-ssd#WDS200T1R0A
22:02:34,858 | HttpGrabber | DEBUG | System.Net.Http.SocketsHttpHandler.Http2Support: True
22:02:34,865 | HttpGrabber | DEBUG | System.Net.Http.UseSocketsHttpHandler: True
22:02:35,067 | HttpGrabber | ERROR | System.AggregateException: One or more errors occurred. (The SSL connection could not be established, see inner exception.)
---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
---> System.ComponentModel.Win32Exception (0x80090326): Le message reçu était inattendu ou formaté de façon incorrecte.
--- End of inner exception stack trace ---
我认为 C# 代码是正确的,因为我有 3/4 单元测试通过:
[TestCase("https://allianz-fonds.webfg.net/sheet/fund/FR0013192572/730?date_entree=2018-04-04")]
[TestCase("https://www.galaxus.de/de/s1/product/zotac-zbox-magnus-en72070v-intel-core-i7-9750h-0gb-pc-13590721")]
[TestCase("https://www.hystou.com/Gaming-Mini-PC-F7-with-Nvidia-GeForce-GTX-1650-p177717.html")]
[TestCase("https://shop.westerndigital.com/de-de/products/internal-drives/wd-red-sata-2-5-ssd#WDS200T1R0A")]
最佳答案
我有同样的问题,我的自动测试(dotnetcore3.1)在 WS 2012 R2 机器上运行,我必须调用只接受两个密码套件的第三方 API:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)。
C# HttpClient 依赖于主机系统中的密码套件,而 Chrome、Firefox 和 Curl 则拥有自己的安全和加密系统。 WS 2012 R2 没有这两个密码,我不知道如何将它们添加到机器上,这些密码没有 Windows 更新。
我选择了使用非常酷的 NuGet 数据包 CurlThin作为解决方案。使用它,我们可以为请求设置自己的密码套件,因此我们不需要对服务器端做任何事情。
我已经安装了两个数据包:CurlThin本身和 CurlThin.Native .
带有 header 的 GET 请求到 HTTPS 端点的结果代码如下所示:
using CurlThin;
using CurlThin.Enums;
using CurlThin.Helpers;
using CurlThin.Native;
using CurlThin.SafeHandles;
using System.Text;
private static string GetToken()
{
//This string is for extracting libcurl and ssl libs to the bin directory.
CurlResources.Init();
var global = CurlNative.Init();
var easy = CurlNative.Easy.Init();
string content;
try
{
var dataCopier = new DataCallbackCopier();
CurlNative.Easy.SetOpt(easy, CURLoption.URL, "https://someendpoints.net/thatendpoint?fake=true");
CurlNative.Easy.SetOpt(easy, CURLoption.WRITEFUNCTION, dataCopier.DataHandler);
//This string is needed when you call a https endpoint.
CurlNative.Easy.SetOpt(easy, CURLoption.CAINFO, CurlResources.CaBundlePath);
var headers = CurlNative.Slist.Append(SafeSlistHandle.Null, "Authorization: Bearer blablabla");
CurlNative.Easy.SetOpt(easy, CURLoption.HTTPHEADER, headers.DangerousGetHandle());
//Your set of ciphers, full list is here https://curl.se/docs/ssl-ciphers.html
CurlNative.Easy.SetOpt(easy, CURLoption.SSL_CIPHER_LIST, "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256");
CurlNative.Easy.Perform(easy);
content = Encoding.UTF8.GetString(dataCopier.Stream.ToArray());
}
finally
{
easy.Dispose();
if (global == CURLcode.OK)
CurlNative.Cleanup();
}
return content;
}
关于c# - dotnetcore 3.1 的 HttpClient 的 TLS1.2 添加密码套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66976212/
我想在我的 dotnet 核心项目中使用 TransactionScope 来提供业务服务。我同时使用 MysqlConnection 和 SqlConnection。我的目的是添加一些数据我自己的数
我有一个正则表达式,当它试图匹配一个长的、完整的字符串时挂起。这是一个示例控制台应用程序: using System; using System.Diagnostics; using System.T
我已经开始将 dotnetcore 用于一个业余项目。 我在尝试安装 NLog 时遇到问题。 Visual Studio Code 编辑器似乎可以识别 beta 版本,因为 intelisense 在
我有一个自定义路由,它从非 SQL 数据库 (MongoDB) 读取 URL,并在应用程序启动时将它们添加到路由管道,这是“非常标准的” 像这样的东西(在我的 startup.cs 文件中): app
下面的代码是演示问题的原始代码的精简版本。在 dotnetcore (1.0.1) 中,.IsEnum 属性被移动到 System.Reflection。我进行了所有按预期工作的更改。但是,我无法使用
为了保持存储库干净并与输出和构建文件分开,我们更改了项目文件中的相应路径。 对于指定 的 Net Framework 项目中间输出路径 将 obj 目录重定向到相应的文件夹。 对于 Net Core
我正在寻找使用 .NET 核心捕获屏幕截图。我知道使用 .NET 框架这是微不足道的,但使用 .NET 核心可以做到这一点吗?我已经搜索过,但在任何地方都找不到任何答案。 最佳答案 System.Dr
是否可以使用特定于健康检查请求的默认 dotnetcore 日志来过滤日志? 因此,这将忽略对/health 等路径的请求 我可以看到按类别和类型可用的过滤,但这还不够,因为它也会阻止记录其他请求。
我正在尝试使用无服务器模板发布 .net core 3 Web api 项目。为了发布 Lambda,我使用 Code Pipeline 在无服务器模板上调用“AWS CloudFormation P
我有一台 C:\驱动器空间不足的机器,我想将我的 DNX/DOTNET 包的安装位置更改为我的 D:\驱动器下的位置。 包缓存位置是否可配置? 注意:我无法灵活地将我的配置文件位置更改为不同的驱动器。
我在 startup.cs 中配置了一个授权策略 services.AddAuthorization(auth => { auth.AddPolicy("Bea
在启动时注册为 Singleton、Scoped 或 Transient,Singleton 意味着只会创建一个实例。 假设我们有一个 UserInfo services.AddSingleton()
在 Ruby on Rails 中,您可以在命令行中使用类似以下内容生成 Controller : rails 生成 Controller ControllerName action1 action2
我们使用 WebAPI 在 Dotnetcore 中编写了一个应用程序。现在,我们想为客户迁移到 NodeJS,因为他们的 IT 团队支持 NodeJS。 我想知道是否有人有任何理由/优势离开 Dot
我将以下单元测试从 .Net Framework 库移植到 .Net 核心 xunint 测试库。需要添加单元测试的项目是 https://github.com/dotliquid/dotliquid
所以我的问题很简单。我有一些文件要复制到构建输出目录,无论是调试构建还是发布发布。我能找到的所有信息都是关于旧的 json 配置方法的。有人有将 csproj 与 dotnetcore 结合使用的示例
我喜欢在我的应用程序中使用静态帮助器类来处理常见的管道问题,例如检查角色或 Razor Html 帮助器和其他东西……但是在 DI 世界中如何做到这一点? 比如说我想要一个扩展助手来检查用户是否是管理
我一直在寻找一种在 Dotnet Core 1.1 中使用 Entity Framework 进行通用分页的方法。 我在 MSDN 上找到了这个指南:https://docs.microsoft.co
我正在创建一个简单的 dotnetcore 2.0 应用程序,我想将其容器化。这个想法是这个容器将在部署时运行一次以执行一些应用程序配置任务。 目前,代码只是执行此操作... class Progra
在命令行我可以输入 dotnet new -t web 构建一个新的 asp.net core web 项目,但它包含“完整模板”(相当于在 Visual Studio 中创建一个新的 MVC 项目)
我是一名优秀的程序员,十分优秀!