调用WebAPI的提示:由于远程方已关闭传输流,身份验证失败。

csharp 复制代码
  			var client = new RestClient(url);
            client.Timeout = -1;
            var request = new RestRequest(Method.POST);
            client.UserAgent = "Apifox/1.0.0 (https://apifox.com)";
            request.AddHeader("Content-Type", "application/json");
            //request.AddHeader("Authorization", "Bearer 123");
            var body = @JsonData;

            request.AddParameter("application/json", body, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

这是我的API调用代码,然后一开始提示:由于远程方已关闭传输流,身份验证失败。

我以为是因为Https 的原因:

所以添加代码来忽略SSL证书但是还是不行

csharp 复制代码
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

于是想想应该可能是http协议的问题

于是

csharp 复制代码
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

问题成功解决

分析原因应该是.Net 4.6以下版本协议固定的原因,升级.Net框架版本可以解决,或者可以上方指定协议的代码也可以解决

相关推荐
淡海水17 分钟前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
asdzx671 小时前
如何使用 C# 提取 PPT 文本与图片
c#·ppt·提取文本
2501_930707788 小时前
使用C#代码使用条件格式为 Excel 隔行设置颜色
c#·excel
何以解忧唯有撸码11 小时前
【开源】c#造个轮子-日程安排工具
c#·自定义控件
周杰伦fans12 小时前
CAD菜单栏和工具栏都不见了,怎么显示?
其他·c#
曹牧12 小时前
C#:HashSet<T> 去重
c#
czhc114007566312 小时前
起点、口径与因果:今天用错的七把尺子
c#
c#上位机1 天前
C#上位机项目实战——Task.Run执行带参数的方法
c#·上位机
Lost of 程序猿1 天前
用 YARP 为 .NET 微服务搭一座“立交桥“:路由转发与生产配置实践
c#·asp.net
点纭1 天前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#