2011-05-14 73 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