.net core 2.0 HTTPS request fails using HttpClient 安全错误
最近.net core 项目中遇到一个问题,通过Httpclient 访问https的接口报错,错误如下:
WinHttpException: A security error occurredSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult()System.Net.Http.WinHttpHandler+<StartRequest>d__105.MoveNext()HttpRequestException: An error occurred while sending the request.System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult()System.Net.Http.HttpClient+<FinishSendAsync>d__58.MoveNext()System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Runtime.CompilerServices.TaskAwaiter.GetResult()MyApp.Web.Controllers.HomeController.Test() in HomeController.csvar response = client.GetAsync("https://someurl.com/api.php?arg1=some&arg2=test").GetAwaiter().GetResult();lambda_method(Closure , object , Object[] )Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker+<InvokeActionMethodAsync>d__27.MoveNext()
通过排查发现是.NETFramework 4.6包括一个新的安全特性,它阻止连接的不安全密码和散列算法。
可以通过下面的解决方案处理:
using (var handler = new HttpClientHandler()) {handler.ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;handler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;using (HttpClient client = new HttpClient(handler)){string requestObjJson = requestObj.ToJson();var address = new Uri($"https://yourcompany.com/");string token = GetToken();client.BaseAddress = address;client.DefaultRequestHeaders.Accept.Clear();client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);var contentData = new StringContent(requestObjJson, System.Text.Encoding.UTF8, "application/json");using (var response = await client.PostAsync("yourcompany/api", contentData)){var content = response.Content.ReadAsStringAsync();var taskResult = content.Result;JObject resultObj = JObject.Parse(taskResult);return resultObj;}} }
需要注意的是,对于.NET core 2.0,您需要使用HttpClientHandler而不是ServicePointManager.
转载于:https://www.cnblogs.com/InfyHarry/p/9302304.html
.net core 2.0 HTTPS request fails using HttpClient 安全错误相关推荐
- 与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上
点击上方蓝字关注"汪宇杰博客" 导语 9月23日,微软正式发布了 .NET Core 3.0,这个版本具有大量新功能和改进.我也在第一时间将自己的博客网站更新到了 .NET Cor ...
- .NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决
今天所有开发环境已经迁移到mac OS下的Visual Studio Code + 命令行编译发布,而运行服务器是CentOS7,和windows没什么关联了. 只要你Relese编译并在本地有一个与 ...
- Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC
What's In This Chapter? Features of ASP.NET MVC 6 Routing Creating Controllers Creating Views Valida ...
- ASP.NET Core 2.0 : 三. 项目结构
ASP.NET Core 2.0 : 三. 项目结构 原文:ASP.NET Core 2.0 : 三. 项目结构 本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Cor ...
- diskgeniusv4.4.0_.NET Core 3.0及ASP.NET Core 3.0前瞻
(给DotNet加星标,提升.Net技能) 转自:LineZerocnblogs.com/linezero/p/netcore3 前几天微软发布了< .NET Core 3.0 Preview ...
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...
- [译]ASP.NET Core 2.0 网址重定向
问题 如何在ASP.NET Core 2.0中实现网址重定向? 答案 新建一个空项目,在Startup.cs文件中,配置RewriteOptions参数并添加网址重定向中间件(UseRewriter) ...
- ASP.NET Core 2.0 使用支付宝PC网站支付
概述 支付宝有比较多的支付产品,比如当面付.APP支付.手机网站支付.电脑网站支付等,本次讲的是电脑网站支付. 详细 代码下载:http://www.demodashi.com/demo/11730. ...
- 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)
工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...
最新文章
- 云计算机机房怎么样,如何知道云电脑配置多少?怎么选择云电脑机房?
- PKU2019暑期学堂 游记
- 正数、负数、和小数正则表达式 ios_【3-17】使用正则表达式去掉字符串间的各种符号...
- 原始套接字与sniffer
- 机器学习基石(1)--The Learning Problem
- dell网卡linux驱动,Dell R720上安装linux网卡驱动
- RTL8188CUS 无线网卡使用说明
- 安装python卡到不动了_pip卡住不动的解决方案
- Maya2022和C4D哪个更好用?
- sd卡突然所有文件都无法删除,在手机中会提示‘无法删除’,并且无法格式化,并且无法写入文件,
- Mac IntelliJ IDEA 2020.1 闪退
- js监听移动端返回键,从内页返回首页
- 苹果cms小程序服务器要求,苹果cmsV10最新版小程序插件
- 树莓派Raspberry Pi的嵌入式QT平台
- 免费文本编辑器--RJ TextEd功能介绍及评测
- 机房综合环境监控系统
- Navicat远程连接Linux上的Mysql数据库
- java判断数据库是否存在_java判断数据库是否存在的方法
- 神舟g7 ct7vk 显卡性能大幅下降的问题
- vue 实现分页和多页签功能