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"));

}