ถ้าเรียก HttpWebRequest แล้วเจอ error
The request was aborted: Could not create SSL/TLS secure channel. [Main] System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.GetResponse()
ให้แก้ไขด้วยการวาง ServicePointManager
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // SecurityProtocolType.Tls // SecurityProtocolType.Tls11 // SecurityProtocolType.Ssl3;
ไว้ก่อน HttpWebRequest
//createing HttpWebRequest after ServicePointManager settings
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://google.com/api/")
ตัวอย่าง
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11
// ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://example.com/api/")
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
People movReq = new People();
People.username = "user1";
People.password = "paas1";
People.xxx = "xxx";
string jsonReq = JsonConvert.SerializeObject(movReq);
log.Info(string.Format("Request: jsonString='{0}'", jsonReq));
streamWriter.Write(jsonReq);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
MOVRealTimeResponse resp;
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
log.Info(string.Format("Response: string='{0}'", result));
resp = JsonConvert.DeserializeObject<MOVRealTimeResponse>(result);
}