最近.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 安全错误相关推荐

  1. 与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上

    点击上方蓝字关注"汪宇杰博客" 导语 9月23日,微软正式发布了 .NET Core 3.0,这个版本具有大量新功能和改进.我也在第一时间将自己的博客网站更新到了 .NET Cor ...

  2. .NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决

    今天所有开发环境已经迁移到mac OS下的Visual Studio Code + 命令行编译发布,而运行服务器是CentOS7,和windows没什么关联了. 只要你Relese编译并在本地有一个与 ...

  3. 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 ...

  4. ASP.NET Core 2.0 : 三. 项目结构

    ASP.NET Core 2.0 : 三. 项目结构 原文:ASP.NET Core 2.0 : 三. 项目结构 本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Cor ...

  5. diskgeniusv4.4.0_.NET Core 3.0及ASP.NET Core 3.0前瞻

    (给DotNet加星标,提升.Net技能) 转自:LineZerocnblogs.com/linezero/p/netcore3 前几天微软发布了< .NET Core 3.0 Preview ...

  6. 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 ...

  7. [译]ASP.NET Core 2.0 网址重定向

    问题 如何在ASP.NET Core 2.0中实现网址重定向? 答案 新建一个空项目,在Startup.cs文件中,配置RewriteOptions参数并添加网址重定向中间件(UseRewriter) ...

  8. ASP.NET Core 2.0 使用支付宝PC网站支付

    概述 支付宝有比较多的支付产品,比如当面付.APP支付.手机网站支付.电脑网站支付等,本次讲的是电脑网站支付. 详细 代码下载:http://www.demodashi.com/demo/11730. ...

  9. 【转载】从头编写 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的相 ...

最新文章

  1. 云计算机机房怎么样,如何知道云电脑配置多少?怎么选择云电脑机房?
  2. PKU2019暑期学堂 游记
  3. 正数、负数、和小数正则表达式 ios_【3-17】使用正则表达式去掉字符串间的各种符号...
  4. 原始套接字与sniffer
  5. 机器学习基石(1)--The Learning Problem
  6. dell网卡linux驱动,Dell R720上安装linux网卡驱动
  7. RTL8188CUS 无线网卡使用说明
  8. 安装python卡到不动了_pip卡住不动的解决方案
  9. Maya2022和C4D哪个更好用?
  10. sd卡突然所有文件都无法删除,在手机中会提示‘无法删除’,并且无法格式化,并且无法写入文件,
  11. Mac IntelliJ IDEA 2020.1 闪退
  12. js监听移动端返回键,从内页返回首页
  13. 苹果cms小程序服务器要求,苹果cmsV10最新版小程序插件
  14. 树莓派Raspberry Pi的嵌入式QT平台
  15. 免费文本编辑器--RJ TextEd功能介绍及评测
  16. 机房综合环境监控系统
  17. Navicat远程连接Linux上的Mysql数据库
  18. java判断数据库是否存在_java判断数据库是否存在的方法
  19. 神舟g7 ct7vk 显卡性能大幅下降的问题
  20. vue 实现分页和多页签功能

热门文章

  1. 华为再招 201 万年薪天才少年,任正非:养得起!
  2. 产品上线前会发生什么故事? | 每日趣闻
  3. 漫画:如何在数组中找到和为 “特定值” 的两个数?
  4. 这里有三位程序员,你能找出来吗?| 每日趣闻
  5. [国家集训队]航班安排
  6. ECMAScript 6入门
  7. order by 索引
  8. Vue实现左右菜单联动实现
  9. JDK9新特性实战:简化流关闭新姿势。
  10. 不使用递归求全排列和组合数