Http客户端远程主机强制关闭现有连接

Jac*_*ack 7 c# httpclient dotnet-httpclient

我在这做错了什么?

        var formContent = new FormUrlEncodedContent(new[]
            {
            new KeyValuePair<string, string>("mobile_numbers", "5555555555"), 
            new KeyValuePair<string, string>("message", "Whoo hahahahah") 
            });           

        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("https://api.iwin.co.za");
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "134134134");
        HttpResponseMessage response = client.PostAsync("iwin/api/v1/messages", formContent).Result;
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码,我得到这个错误:一个现有的连接被强行关闭远程主机 我去了代码几次,一切都看起来不错,一些报道来看,我得到的错误是服务器的问题,但是当我尝试与R-client一起工作正常

Http请求

mwa*_*rdm 14

如果客户端和服务器无法就要使用的TLS协议版本达成一致,则可能会导致此问题.

我认为.Net 4.5.2及更早版本默认为v1,如果v1.2包含在框架中,则停用v1.2.(在.Net 4.6.*中,v1.2是默认值.)

要在4.5.2中启用v1.2,您可以使用:

System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)

(我相信这可以在整个应用领域实现吗?)

无论如何,为我解决了问题(针对不同的网站).