数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

排列五复式组合投注表:详解.NET Core 使用HttpClient SSL请求出错的解决办法

来源:脚本之家  责任编辑:小易  

河北20选五开奖结果 www.vhmyd.cn 问题

使用 HTTP Client 请求 HTTPS 的 API 时出现 The certificate cannot be verified up to a trusted certification authority 异常,并且证书已经传入。

下面就是问题代码:

public class Program
{
 public static void Main(string[] args)
 {
  var url = @"https://xxx.xxx.xxx.xxx:xxxx/xxx-web/services/xxxx?wsdl";

  var handler = new HttpClientHandler
  {
   ClientCertificateOptions = ClientCertificateOption.Manual,
   ClientCertificates =
   {
    new X509Certificate2(@"E:\cert\rootTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\middleTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\wskey.pfx","ws654321")
   }
  };
  
  var webRequest = new HttpClient(handler);
  var result = webRequest.GetStringAsync(url).GetAwaiter().GetResult();
  Console.WriteLine(result);
 }
}

原因

因为在发出 HTTPS 请求的时候,HttpClient 都会检查 SSL 证书是否合法。如果不合法的话,就会导致抛出异常信息,而对方给出的证书是自签发的测试接口的证书,所以不是一个合法的 SSL 证书。

解决

HttpClientHandler 当中会有一个 ServerCertificateCustomValidationCallback 事件,该事件用于判定证书验证是否通过。我们可以挂接该事件,然后逻辑编写为直接返回 true 结果,这样就会忽略掉证书异常的情况。

最新的代码如下:

public class Program
{
 public static void Main(string[] args)
 {
  var url = @"https://xxx.xxx.xxx.xxx:xxxx/xxx-web/services/xxxx?wsdl";

  var handler = new HttpClientHandler
  {
   ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true, 
   ClientCertificateOptions = ClientCertificateOption.Manual,
   ClientCertificates =
   {
    new X509Certificate2(@"E:\cert\rootTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\middleTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\wskey.pfx","ws654321")
   }
  };
  
  var webRequest = new HttpClient(handler);
  var result = webRequest.GetStringAsync(url).GetAwaiter().GetResult();
  Console.WriteLine("xx");
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:


  • 本文相关:
  • asp.net core2.1前后使用httpclient的两种方式
  • asp.net core针对一个使用httpclient对象的类编写单元测试详解
  • .net core中httpclient的正确打开方式
  • .net core中使用httpclient的正确姿势
  • .net core 2.1中httpclientfactory的最佳实践记录
  • asp.net 生成静态时的过滤viewstate的实现方法
  • asp.net中c#实现手动回收内存的方法
  • c#生成图片缩略图的类(2种实现思路)
  • asp.net连接 access数据库的几种方法
  • asp.net微信公众号客服接口
  • asp.net 产生随机颜色实现代码
  • .net中使用xsl文件作为导航菜单的小例子
  • asp.net uploadify实现多附件上传功能
  • asp.net mvc实时生成缩率图到硬盘
  • aspnetpager重写url(伪静态)配置实例
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 河北20选五开奖结果 - 频道导航
    Copyright © 2017 河北20选五开奖结果 www.vhmyd.cn All Rights Reserved
  • 一加手机5【报价 图片 参数 评测】 2019-03-25
  • 图解5G:开启万物互联  赋能数字经济 2019-03-25
  • (两会受权发布)第十三届全国人民代表大会八个专门委员会主任委员、副主任委员、委员名单 2019-03-25
  • 机场集团领导班子2017年度综合考核再获“好”等次 2019-03-24
  • 湿热天气毒蛇出没!蛇咋成了邪恶的化身? 2019-03-24
  • 【新时代 新作为 新篇章】陕西:“技术供给” 为“一带一路”建设注入科技力量 2019-03-24
  • 高清:探访苟坝见证历史 红军在此留下珍贵遗物 2019-03-23
  • 在深入推动长江经济带发展座谈会上的讲话 2019-03-23
  • 把环保责任镶嵌到组织管理架构中去 2019-03-22
  • 今年江西千万元公益金买服务 受益者将更广泛 2019-03-22
  • 您访问的页面找不回来了 2019-03-22
  • 特金明日将通电话 提醒谁莫忘感恩? (原创首发) 2019-03-21
  • 法制日报:别让世界杯激情冲淡守法意识 2019-03-21
  • [大笑]小撸的眼睛在滴血…… 2019-03-21
  • 浙江大学科研团队潜心十五载 飞机装配有了国产自动化设备 2019-03-21
  • 509| 585| 848| 879| 27| 37| 785| 750| 740| 835|