【问题标题】:WebResponse stream to WebBrowser ControlWebResponse 流到 WebBrowser 控件
【发布时间】:2013-07-19 15:26:32
【问题描述】:

我有一个如下所示的 C# WebResponse 流:

<script language=JavaScript> 
document.write('<head>');
document.write('<title> Testing </title>');
document.write('</head>');
</script>

我想把它放到一个 WebBrowser 控件中,我该怎么做? WebBrowser1.DocumentStream = 流;什么都不做……

我在做什么:

WebResponse response = request.GetResponse();
stream = response.GetResponseStream();
WebBrowser WebBrowserResponse = new WebBrowser();
WebBrowserResponse.DocumentStream = stream;
Console.WriteLine(WebBrowserResponse.DocumentText);

这行不通。

答案是(我还不能回答我自己的问题)谢谢大家:

string s = sr.ReadToEnd();
WebBrowserResponse.Navigate("about:blank");
WebBrowserResponse.Document.OpenNew(false);
WebBrowserResponse.Document.Write(s);
WebBrowserResponse.Refresh();
WebBrowserResponse.DocumentCompleted += (sndr, ex) =>
{
Console.WriteLine(WebBrowserResponse.DocumentText);
};

【问题讨论】:

  • 向我们展示您在做什么,我们或许可以提供帮助。
  • 这段代码没问题。它没有显示任何内容?
  • 显示“”

标签: c# javascript html .net webbrowser-control


【解决方案1】:

您试图在将流分配给浏览器后立即获取内容。您应该等待DocumentCompleted 事件。

试试这个:

webBrowser1.DocumentCompleted += (sndr, e) =>
{
     Console.WriteLine(webBrowser1.DocumentText);
};

顺便说一句:您将流分配给WebBrowser1,但从WebBrowserResponse 读取

【讨论】:

  • Webbrowser1 在这里输入错误,呵呵,但无论如何我尝试了你的建议,现在它显示:
【解决方案2】:

是的,我明白了!

string s = sr.ReadToEnd();
WebBrowserResponse.Navigate("about:blank");
WebBrowserResponse.Document.OpenNew(false);
WebBrowserResponse.Document.Write(s);
WebBrowserResponse.Refresh();
WebBrowserResponse.DocumentCompleted += (sndr, ex) =>
{
Console.WriteLine(WebBrowserResponse.DocumentText);
};

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多