今天做了一个新接口部署到测试服务器后,使用.net core开发,测试环境也安装了ssl证书,绑定了https证书供其他项目组调用的数据接口,我自己也在本地自测后通过,部署之后用我自己编写的代码测试工具调用测试,也是没问题的。交付文档给同事之后,对方在调取时反馈ssl证书错误。

既然是ssl证书错误,首先想到的是运维检查是证书的问题,或者服务器设置的问题。因为申请运维比较麻烦,虽然已经反馈,但是着急调试程序,所以想从代码上解决问题。

下面是postman的测试截图

看提示是证书不匹配。

用同事的代码测试确实有报ssl证书错误,后换了一种方式,忽略掉证书检测警告,本地也不需要证书。

代码如下

var httpClientHandler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = (s, c, ch, ssl) => true
            };
            var client = new HttpClient(httpClientHandler);

            ////转为链接需要的格式
            HttpContent httpContent = new JsonContent(datajson);
            var result = client.PostAsync(url, httpContent).Result;
            if (result.IsSuccessStatusCode)
            {
                Task<string> t = result.Content.ReadAsStringAsync();
                if (t != null)
                {
                    return t.Result;
                }
            }

            return "";

总结,以上就是core中忽略https证书警告的调用代码,后测试正常使用,问题解决。

来源:www.887551.com,分享请保留出处。