C# 验证URL有效性

TEST 这篇日志,是直接从OneNote 2010里面发送到优快云上去的!!

发送接口如下:

http://blog.youkuaiyun.com/jxitc/services/metablogapi.aspx

 

 

  检测远程URL是否存在的三种方法 收藏

< type="text/javascript">< type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

private void Page_Load(object sender, System.EventArgs e)

{

 string url1 = "http://dotnet.aspx.cc/";

 string url2 = "http://dotnet.aspx.cc/Images/logo.gif";

 Response.Write("

  • 方法1");

     Response.Write(url1 + " 存在:" + UrlExistsUsingHttpWebRequest(url1).ToString());

     Response.Write("

  • 方法2");

     Response.Write(url1 + " 存在:" + UrlExistsUsingSockets(url1).ToString());   

     Response.Write("

  • 方法3");

     Response.Write(url1 + " 存在:" + UrlExistsUsingXmlHttp(url1).ToString());

     Response.Write("

  • 方法1");

     Response.Write(url2 + " 存在:" + UrlExistsUsingHttpWebRequest(url2).ToString());

     Response.Write("

  • 方法3");

     Response.Write(url2 + " 存在:" + UrlExistsUsingXmlHttp(url2).ToString());

    }

    private bool UrlExistsUsingHttpWebRequest(string url)

    {

     try

     {

      System.Net.HttpWebRequest myRequest =(System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);

      myRequest.Method = "HEAD";

      myRequest.Timeout = 100;

      System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)myRequest.GetResponse();

      return (res.StatusCode == System.Net.HttpStatusCode.OK);

     }

     catch(System.Net.WebException we)

     {

      System.Diagnostics.Trace.Write(we.Message);

      return false;

     }

    }

    private bool UrlExistsUsingXmlHttp(string url)

    {

     //注意:此方法需要引用Msxml2.dll

     MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();

     _xmlhttp.open("HEAD",url,false,null,null);

     _xmlhttp.send("");

     return (_xmlhttp.status == 200 );

    }

    private bool UrlExistsUsingSockets(string url)

    {

     if(url.StartsWith("http://")) url = url.Remove(0,"http://".Length);

     try

     {

      System.Net.IPHostEntry ipHost = System.Net.Dns.Resolve(url);

      return true;

     }

     catch (System.Net.Sockets.SocketException se)

     {

      System.Diagnostics.Trace.Write(se.Message);

      return false;

     }

    }

       

    Pasted from <http://blog.youkuaiyun.com/jetxia/archive/2006/03/11/621506.aspx>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值