判断网页URL是否存在

来源:互联网 发布:nba淘宝旗舰店 编辑:程序博客网 时间:2024/04/30 01:36

最近做了一个工具用于测试网页的url是否存在,刚开始接到任务时感觉无从着手,之后就忙着百度,谷歌,但是网上通用的一些方法并不能很好的解决问题,有时候我们需要真对我们所要工作的内容和性质写不同的代码,一般通用测试URL是否存在,都是判断浏览器的响应值是否ok,代码如下:

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

myRequest.Method="HEAD";               //设置提交方式可以为"get","head"等

myRequest.Timeout=10000;              //设置网页响应时间长度

myRequest.AllowAutoRedirect=false;//是否允许自动重定向

HttpWebResponse  myResponse= (HttpWebResponse)myRequest.GetResponse();

return  (myResponse.StatusCode==HttpStatusCode.OK);//返回响应的状态

值得说明的是有时某些URL是权限设置的,所以我们应在上面的语句中加入一句代码:myRequest.UseDefaultCredentials=true;

如果不加的话,可能会使判断失误。

 

上述这些代码只可以用来判断一些URL是否存在,但是有时候我们需要不光要判断这个URL是否存在,而且还要判断其是否是我们想要的页面,这时我们就得其中html内容的值来做具体判断,也就是对html做遍历,匹配一些字符串,所以上面的这段代码就不适用了,我推荐用下面的这种方法:

 WebClient  wc=new  WebClient();

 wc.UseDefaultCredentials=true;

 Stream  resStream=wc.OpenRead(url);            //Open theurl by stream

 Encoding  enc=Encoding.GetEncoding("GB2312");   //If is the messycode than change uft-8

 StreamReader   sr=newStreamReader(resStream,enc);

 var  html=sr.ReadToEnd().ToUpper();        

 ……

 在上述代码中html是响应的页面的源码,即html,从中可以用字符串方法来查找是否为我们所需的内容,从而判断url是否存在,这在企业中一般是比较常用的,因为在现实生活不会让你判断一个URL是否存在,一般都是判断一个站点的url和其下面的内容,而不同的站点内容不一致,如果不是我们想要的页面都直接认为其有误,所以这时我们不得不去判断其内容了,所以我建议大家对后一种方法重点掌握。

0 0
原创粉丝点击