0

我正在尝试使用 httpwebrequest 打开 adfoc.us/504....9 链接。但是它没有给我任何 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] 之类的网站 - 我会得到带有 google html 源代码的 mbox。如果我使用adfoc.us/50....链接,我会得到一个空字符串。

问题可能出在哪里?谢谢你。

编辑:我通过安装 GeckoFx 组件解决了这个问题。

4

3 回答 3

0

这只是一个猜测。

如果您可以在浏览器中打开链接而不是从代码中打开链接,则可能意味着 adfoc.us 会阻止您,因为它找不到 useragent 标头。尝试添加浏览器使用的用户代理标头。

于 2012-07-09T09:52:14.723 回答
0

初始化时WebRequest,添加以下内容:

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

似乎它不喜欢默认标题。我从 Firefox 请求标头中获得了上述信息。

于 2012-07-09T11:22:45.380 回答
0

尝试这个 var req = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(""); req.AllowAutoRedirect = true;

你可以手动设置MaximumAutomaticRedirections

于 2012-07-09T09:57:53.023 回答