我可以使用postman成功调用HTTPS REST GET请求。
但是当我尝试使用带有以下代码的RestShap(C#,.NET)来调用相同的HTTPS REST请求时。
var client = new RestClient("https://testsite.com:7000/abcd/1.0/xyx/games/getgames");
client.Authenticator = new HttpBasicAuthenticator("myusername", "mypassword");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
我收到以下异常
底层连接已关闭:发送时发生意外错误。
我试图使用Fiddler捕获请求,我可以观察到一个奇怪的事情是请求类型是HTTP。
来自小提琴手的错误是
fiddler.network.https>对testsite.com的HTTPS握手(#45)失败。 System.IO.IOException无法从传输连接读取数据:远程主机强制关闭现有连接。 <远程主机强行关闭现有连接
您需要拥有SSL证书才能使用https请求,您可以使用以下代码将SSL证书添加到您的请求中
X509Certificate2 certificates = new X509Certificate2();
certificates.Import(...);
client.ClientCertificates = new X509CertificateCollection(){certificate});