我们有时候,需要知道某个网络资源是否有效、可用,但是我们并不想打开或下载这个资源,因为这个资源可能很大(例如需要下载的某个文件)
一种行之有效的方式,就是利用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://www.zu14.cn/logo.gif
如果资源可用,返回 true, 否则返回 false