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

相关推荐
淘源码d10 小时前
如何运用C#.NET快速开发一套掌上医院系统?
开发语言·c#·.net·源码·掌上医院
一个程序员(●—●)10 小时前
xLua环境控制+xLua的Lua调用C#的1
开发语言·unity·c#·lua
qq_3404740211 小时前
6.1 python加载win32或者C#的dll的方法
java·python·c#
Trustport11 小时前
C# EventLog获取Windows日志进行查询设置多个EventLogQuery查询条件
开发语言·c#
勘察加熊人12 小时前
c#的form实现飞机大战
开发语言·c#
观无13 小时前
JWT认证服务
前端·c#·vue
FAREWELL0007514 小时前
C#核心学习(八)面向对象--封装(7)终章 C#内部类和分部类
开发语言·学习·c#·内部类·密封类·分部类
唐青枫14 小时前
C# sealed 关键字详解
c#·.net
╰つ゛木槿14 小时前
使用VSCode编写C#程序
ide·vscode·c#
baivfhpwxf202318 小时前
prism WPF 对话框
c#·wpf