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] のような Web サイトを使用すると、Google html ソースを含む mbox を取得できます。adfoc.us/50....リンクを使用すると、空の文字列が得られます。

どこに問題があるのでしょうか? ありがとうございました。

編集: GeckoFx コンポーネントをインストールすることで問題を解決しました。

4

3 に答える 3

0

これは単なる推測です。

コードからではなくブラウザでリンクを開くことができる場合は、adfoc.usがuseragentヘッダーを見つけられないためにブロックされている可能性があります。ブラウザが使用する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 に答える