我正在通过PostAsJsonAsync向第三方网站发送请求,如下所示:
testrunner.bat
引发异常:[请求已中止:无法创建SSL / TLS安全通道。] 我知道我的网站在测试环境中没有SSL证书,并且可能正在发生,因为第三方网站具有SSL证书。 我想知道有什么方法可以创建SSL通道而无需转移到SSL。
答案 0 :(得分:0)
我不确定您是否异步,但这是对工作代码的一种改编,用于将JSON数据发送到SSL网站,您应该能够适应您的特定情况:
var baseurl = "https://example.com/api/upload/123";
var rqst = (HttpWebRequest)WebRequest.Create(baseurl);
rqst.Method = "PUT";
rqst.Accept = "application/json";
var authInfo = "authtoken";
rqst.Headers["Authorization"] = "Token " + authInfo;
rqst.UserAgent = "curl/7.37.0";
rqst.ContentType = "application/json; charset=utf-8";
using (var streamWriter = new StreamWriter(rqst.GetRequestStream()))
{
streamWriter.Write(GetJsonData());
}
try
{
var resp = rqst.GetResponse();
using (var sr = new StreamReader(resp.GetResponseStream() ?? throw new InvalidOperationException()))
{
var txt = sr.ReadToEnd();
textBox1.Text = txt;
}
}
catch (Exception ex)
{
textBox1.Text = ex.Message;
}
答案 1 :(得分:0)
我刚刚添加了
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
在PostAsJsonAsync之前,它解决了我的问题。