Asp.Net 用webrequest获取资源时,报“The underlying connection was closed:Could not establish trust relationship for the SSL/TLS secure channel.”的错。后面发现我请求的url地址是https的,和普通的http站点不同。
解决方案;
在请求资源代码前加上如下代码即可:
ServicePointManager.ServerCertificateValidationCallback +=
delegate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
请求资源代码:
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream receiveStream = myHttpWebResponse.GetResponseStream();
string imageType = myHttpWebResponse.GetResponseHeader("Content-disposition").Split(';')[1].Split('.')[1].Trim('"');
string fileName= Guid.NewGuid().ToString() + "." + imageType;
string filePath = saveFilePath + "/" +fileName;
byte[] buffer = new byte[1024];
int len = 0;
FileStream fs = new FileStream(filePath, FileMode.Create);
while ((len = receiveStream.Read(buffer, 0, buffer.Length)) > 0)
{
fs.Write(buffer, 0, len);
}
fs.Close();