我们有一个工具可以检查给定的 URL 是否是实时 URL。如果给定的 url 是活动的,我们软件的另一部分可以筛选出其中的内容。
这是我检查网址是否有效的代码
public static bool IsLiveUrl(string url)
{
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
webRequest.CookieContainer = new CookieContainer();
WebResponse webResponse;
try
{
webResponse = webRequest.GetResponse();
}
catch (WebException e)
{
return false;
}
catch (Exception ex)
{
return false;
}
return true;
}
此代码运行良好,但对于托管在 apache 上的特定站点,我收到带有以下消息的 Web 异常。“远程服务器返回错误:(403) Forbidden”在进一步检查中,我在 WebException 对象中发现了以下详细信息
Status="ProtocolError" StatusDescription="Bad Behaviour"
这是请求标头“用户代理:Mozilla/5.0 (Windows;U;Windows NT 5.1;en-US;rv:1.8.0.6) Gecko/20060728 Firefox/1.5 主机:scenespares.co.uk 连接:保持活动"
这是响应标头“Keep-Alive: timeout=4, max=512 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html Date: Thu, 13 Jan 2011 10:29:36 GMT Server: Apache "
我在 vs2008 中使用手表提取了这些标头。使用的框架是 3.5。