检查Http& Https Url存在于c sharp中

时间:2011-10-04 10:08:50

标签: c# asp.net

我正在处理一个项目,我正面临检查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();

阿尼尔

2 个答案:

答案 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");
}