2012-07-09 118 views
0

我試圖用httpwebrequest打開adfoc.us/504....9鏈接。 但它沒有給我HTML代碼。無法獲取HTML

try 
    { 
     req = WebRequest.Create(txtLink.Text); 
     WebProxy wp = new WebProxy(proxies[0]); 
     //req.Proxy = wp; 

     WebResponse wr = req.GetResponse(); 
     StreamReader sr = new StreamReader(wr.GetResponseStream()); 
     string content = sr.ReadToEnd(); 
     MessageBox.Show(content); 
     sr.Close(); 
    } 
    catch (UriFormatException) 
    { 
     MessageBox.Show("URL should be in this format:\nhttp://www.google.com"); 
     return; 
    } 

如果我使用網站像[google.com] [1] - 我得到谷歌html源碼的mbox。 如果我使用adfoc.us/50....鏈接,我會得到一個空字符串。

問題出在哪裏? 謝謝。

編輯:我通過安裝GeckoFx組件解決了這個問題。

+0

因爲此鏈接不包含任何內容 – akhil 2012-07-09 09:47:15

+0

當我如何在瀏覽器中打開它?我檢查了篡改數據,我認爲有一些重定向。 – 2012-07-09 09:48:36

+0

我沒有收到任何重定向。 – ZippyV 2012-07-09 09:49:57

回答

0

這只是一個猜測。

如果您可以在瀏覽器中打開鏈接而不是從代碼中打開鏈接,則可能意味着adfoc.us會阻止您,因爲它找不到useragent標頭。嘗試添加瀏覽器使用的useragent頭。

+0

嘗試使用req.UserAgent =「MSIE 6.0」;沒有結果 – 2012-07-09 09:56:59

+0

這不是一個真正的useragent字符串。試試這個:Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) – ZippyV 2012-07-09 10:17:30

0

試試這個 var req = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(""); req.AllowAutoRedirect = true;

,你可以手動設置MaximumAutomaticRedirections

+0

autoredirect沒有工作:( – 2012-07-09 10:05:51

0

初始化時WebRequest,添加以下內容:

req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

好像它不喜歡默認的標題。我從Firefox請求頭獲得了上述內容。

+0

我會試試這個。它。 – 2012-07-09 12:13:51