2013-07-19 26 views
0

我有一個看起來像這樣的C#WebResponse的流:WebResponse的流WebBrowser控件

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

我願把它變成一個WebBrowser控件,我該怎麼辦呢? WebBrowser1.DocumentStream = stream;什麼也不做......

我在做什麼:

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); 
}; 
+0

告訴我們你在做什麼,我們可能會提供幫助。 – Ehsan

+0

這段代碼很好。它沒有顯示任何內容? – Ehsan

+0

它顯示 「」 – Vinicius

回答

1

您正在嘗試爲您分配流的瀏覽器儘快獲取內容。您應該等待DocumentCompleted事件。 BTW

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

試試這個你流分配到WebBrowser1,但WebBrowserResponse

+0

的Webbrowser1是錄入錯誤在這裏赫赫,但反正我想你的建議,現在它顯示:<!DOCTYPE HTML PUBLIC 「 - // W3C // DTD HTML 4.0過渡// EN」> Vinicius

-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); 
}; 

謝謝大家!