2011-05-14 61 views
1

我正在编写需要下载网页的应用程序。但是我用这个编码方案来获得HTML:webrequest获取错误页面,但浏览器获取正确页面

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);     
HttpWebResponse response = (HttpWebResponse)request.GetResponse();     

System.IO.Stream data = response.GetResponseStream(); 
System.IO.StreamReader reader = new System.IO.StreamReader(data, true); 
string htmlCode = reader.ReadToEnd(); 

我有一个问题,从这个网站的网址:http://www.jamejamonline.ir/

当我尝试以这种方式来获得一个页面,重定向到错误页面, 但所有webbrowsers显示正确的html页面。

我该如何解决这个问题?

+0

错误页面说什么?网站是否需要cookies? – Oded 2011-05-14 12:54:03

+0

您可以使用WebClient.DownloadString()方法 – 2011-05-14 13:08:30

+0

以较少的代码执行此操作,错误页面为:“网站中存在错误,请稍后再试” – Hamed 2011-05-15 03:21:12

回答

0

指定一个用户代理这样

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); 
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";     
HttpWebResponse response = (HttpWebResponse)request.GetResponse();     

System.IO.Stream data = response.GetResponseStream(); 
System.IO.StreamReader reader = new System.IO.StreamReader(data, true); 
string htmlCode = reader.ReadToEnd(); 

我想它和它的工作!

+0

它的工作。非常感谢。 (داتگرم) – Hamed 2011-05-16 12:32:18

+0

不客气,(چاکریم) – mrbm 2011-05-17 08:09:52

0

请求方法似乎在您显示的那段代码中缺失。在您创建请求加入这一行的行之后:

request.Method = WebRequestMethods.Http.Get 
+0

request.Method的默认值为“Get” – Hamed 2011-05-15 03:15:45

+0

错误页面是:“网站存在错误,请稍后再试” – Hamed 2011-05-15 03:23:36