作者:刘丹小宝0 | 来源:互联网 | 2023-02-02 17:10
我在这做错了什么?
var formCOntent= new FormUrlEncodedContent(new[]
{
new KeyValuePair("mobile_numbers", "5555555555"),
new KeyValuePair("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;
当我运行上面的代码,我得到这个错误:一个现有的连接被强行关闭远程主机
我去了代码几次,一切都看起来不错,一些报道来看,我得到的错误是服务器的问题,但是当我尝试与R-client一起工作正常
1> mwardm..:
如果客户端和服务器无法就要使用的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;
(我相信这可以在整个应用领域实现吗?)
无论如何,为我解决了问题(针对不同的网站).