我正在处理一个项目,我正面临检查HTTPS URL是否正确的问题。现在我已经在c#中对HTTP进行了验证,现在我想要验证HTTPS
我的HTTP验证代码。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Proxy = WebProxy.GetDefaultProxy();
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
// execute the request
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Response.Clear();
Response.Write(response.StatusDescription);
Response.End();
阿尼尔
答案 0 :(得分:1)
来自MSDN
Create方法返回WebRequest类的后代 在运行时确定为requestUri最接近的注册匹配。
例如,当传递以http://或https://开头的URI时 在requestUri中,Create 返回HttpWebRequest。
如果传递以ftp://开头的URI,则Create方法将返回 一个FileWebRequest实例。如果传递以file://开头的URI 相反,Create方法将返回FileWebRequest实例。
已注册的预先登记的储备类型包括 以下内容:
的http://
的https://
的ftp://
文件://
.NET Framework包括对http://,https://,ftp://的支持, 和file:// URI方案。自定义WebRequest后代来处理其他 请求使用RegisterPrefix方法注册。
完整参考here
解决错误:“基础连接已关闭:无法建立信任 SSL / TLS安全通道的关系“在请求之前写入此代码,证书应该验证。
ServicePointManager.ServerCertificateValidationCallback +=
delegate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
答案 1 :(得分:0)
参考:http://www.heatonresearch.com/articles/166/page2.html
try
{
Uri uri = new Uri("https://www.httprecipes.com/1/5/https.php");
WebRequest http = HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)http.GetResponse();
Stream stream = response.GetResponseStream();
}
catch(UriFormatException e)
{
Console.WriteLine("Invalid URL");
}
catch(IOException e)
{
Console.WriteLine("Could not connect to URL");
}