我們有時候,需要知道某個網絡資源是否有效、可用,但是我們並不想打開或下載這個資源,因為這個資源可能很大(例如需要下載的某個文件)
一種行之有效的方式,就是利用HTTP頭返回的狀態碼來確定資源的可用性;我們通常的WEB訪問,使用的是 GET 和 POST, 這裡使用的是 HEAD 方式
static bool IsWebResourceAvailable(string webResourceAddress)
{
try
{ HttpWebRequest req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(webResourceAddress));
req.Method = "HEAD";
req.Timeout = 1000;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
return (res.StatusCode == HttpStatusCode.OK);
}
catch (WebException wex)
{
System.Diagnostics.Trace.Write(wex.Message); return false;
}
}
上面的函數中, webResourceAddress 是資源的地址,例如:
http://hovertree.com/themes/hvtimages/hwqlogo.png
如果資源可用,返回 true, 否則返回 false