2012-07-09 109 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