C#判断网络地址 Url 是否存在的方法

通过这个方法我们在调用远程服务之前进行下判断,给出友情提示,非常人性化。

代码如下:

private bool UrlIsExist(String url)
{
  System.Uri u = null;
  try
  {
    u = new Uri(url);
  }
  catch { return false; }
  bool isExist = false;
  System.Net.HttpWebRequest r = System.Net.HttpWebRequest.Create(u) as System.Net.HttpWebRequest;
  r.Method = "HEAD";
  try
  {
    System.Net.HttpWebResponse s = r.GetResponse() as System.Net.HttpWebResponse;
    if (s.StatusCode == System.Net.HttpStatusCode.OK)
    {
      isExist = true;
    }
  }
  catch (System.Net.WebException x)
  {
    try
    {
      isExist = ((x.Response as System.Net.HttpWebResponse).StatusCode != System.Net.HttpStatusCode.NotFound);
    }
    catch { isExist = (x.Status == System.Net.WebExceptionStatus.Success); }
  }
  return isExist;
}
protected void Page_Load(object sender, EventArgs e)
{
  Response.Write("<li>http://dotnet.aspx.cc/Images/ 是否存在:" + UrlIsExist("http://dotnet.aspx.cc/Images/"));
  Response.Write("<li>http://dotnet.aspx.cc/ImagesX/ 是否存在:" + UrlIsExist("http://dotnet.aspx.cc/ImagesX/"));
  Response.Write("<li>http://xxxxx/ 是否存在:" + UrlIsExist("http://xxxxx/"));
  Response.Write("<li>hxxxxxxxxxxxxxxxxxxx 是否存在:" + UrlIsExist("hxxxxxxxxxxxxxxxxxxx"));
  Response.Write("<li>http://dotnet.aspx.cc/Images/logoSite.gif 是否存在:" + UrlIsExist("http://dotnet.aspx.cc/Images/logoSite.gif"));
  Response.Write("<li>http://dotnet.aspx.cc/Images/logoSite2.gif 是否存在:" + UrlIsExist("http://dotnet.aspx.cc/Images/logoSite2.gif"));

 

posted @ 2011-11-22 23:57  龙仪  阅读(2568)  评论(0编辑  收藏  举报