检测远程URL是否存在的三种方法<转>

本文介绍了三种检测远程URL是否存在的方法:使用HttpWebRequest发起HEAD请求、利用Socket进行域名解析及使用XmlHttp对象。通过实际代码演示了如何实现这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

来源: 孟子E章 关键词: URL  存在  
 

 


  
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(
" <li>方法1: " );
Response.Write(url1
+ " 存在: " + UrlExistsUsingHttpWebRequest(url1).ToString());
Response.Write(
" <li>方法2: " );
Response.Write(url1
+ " 存在: " + UrlExistsUsingSockets(url1).ToString());
Response.Write(
" <li>方法3: " );
Response.Write(url1
+ " 存在: " + UrlExistsUsingXmlHttp(url1).ToString());
Response.Write(
" <li>方法1: " );
Response.Write(url2
+ " 存在: " + UrlExistsUsingHttpWebRequest(url2).ToString());
Response.Write(
" <li>方法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 ;
}
}

转载于:https://www.cnblogs.com/fangyuan303687320/archive/2009/12/12/1622475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值