Sye*_*bar 9 c# screen-scraping httpwebrequest httpwebresponse http-status-code-403
我们有一个工具可以检查给定的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;
}
Run Code Online (Sandbox Code Playgroud)
这段代码完美无缺,但是对于在apache上托管的特定站点,我收到了一个带有以下消息的Web异常."远程服务器返回错误:(403)Forbidden"在进一步检查时,我在WebException对象中找到了以下详细信息
Status ="ProtocolError"StatusDescription ="不良行为"
这是请求标题"User-Agent:Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6)Gecko/20060728 Firefox/1.5主机:scenicspares.co.uk连接:Keep-Alive "
这是响应标题"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.
Sye*_*bar 14
事实证明,我需要做的就是遵循
webRequest.Accept = "*/*";
webResponse = webRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)
它是固定的.
归档时间: |
|
查看次数: |
29677 次 |
最近记录: |