调用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框架版本可以解决,或者可以上方指定协议的代码也可以解决

相关推荐
夏霞10 小时前
c# ASP.NET Core SignalR 客户端配置自动重连次数
c#·.netcore
2501_9307077810 小时前
使用C#代码在 Word 文档中查找并替换文本
开发语言·c#·word
一个帅气昵称啊12 小时前
在.NET中使用RAG检索增强AI基于Qdrant的矢量化数据库
ai·性能优化·c#·.net·rag·qdrant
还是大剑师兰特14 小时前
C#面试题及详细答案120道(86-95)-- 进阶特性
c#·大剑师
我是唐青枫17 小时前
C#.NET ControllerBase 深入解析:Web API 控制器的核心基石
c#·.net
O败者食尘D18 小时前
【C#】使用Enigma将Winform或WPF打包成一个exe
c#
The Sheep 202321 小时前
C# 吃一堑,长一智
c#
q***82911 天前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
hixiong1231 天前
C# OpenCVSharp实现Hand Pose Estimation Mediapipe
开发语言·opencv·ai·c#·手势识别
baivfhpwxf20231 天前
SQL Server 服务端如何在其他电脑连接
c#