首页 > 解决方案 > 如何使用 Restsharp 连接到 API

问题描述

我正在尝试使用 RestSharp 连接到 API,但是出现以下错误:

连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应<ipaddress>:<port>

代码:

var client = new RestClient("https://api.infobip.com/sms/1/text/advanced");

var request = new RestRequest(Method.POST);
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Basic " + Base64Encode());
request.AddParameter("application/json", ReturnJsonData(sms), ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

奇怪的是,代码在控制台应用程序中运行良好,但无法在 Web 应用程序中连接。请帮忙。

标签: c#asp.netrestsharpinfobipinfobip-api

解决方案


您面临的问题可能不是因为代码,而是由于 TLS。

如果您使用的是 dotnet framework 4.5 及更高版本,请在 Startup.cs 中使用以下代码

public void Configuration(IAppBuilder app) {
        System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
        ConfigureAuth(app);
    }

如果您使用 4.5 以下的 .net 框架,请在 Global.asax 中使用以下代码

 ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
 ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

推荐阅读