2011-07-12 395 views
0

我正試圖加載WebBrowser中的頁面通過服務器發送的responseStream。我嘗試設置,它的DocumentStream屬性,但瀏覽器不導航。這是我的代碼:即使設置DocumentStream,web瀏覽器也不會導航?

private void btnFbConnect_Click(object sender, EventArgs e) 
    { 
     WebRequest request = WebRequest.Create("http://www.facebook.com"); 
     request.Method = "GET"; 
     WebResponse response = request.GetResponse(); 
     StreamReader rdr = new StreamReader(response.GetResponseStream()); 
     webBrowser1.DocumentStream = rdr.BaseStream;// after this line, I'm expecting the browser to display the facebook login page. 
     MessageBox.Show(rdr.ReadToEnd()); 
     rdr.Close(); 
     response.Close(); 
    } 

我是否缺少中間步驟?如果不是,導致瀏覽器不導致導航的原因是什麼?

回答

1

WebBrowser訪問它之前,請不要關閉流。

WebRequest request = WebRequest.Create("http://www.facebook.com"); 
request.Method = "GET"; 
WebResponse response = request.GetResponse(); 
StreamReader rdr = new StreamReader(response.GetResponseStream()); 
webBrowser1.DocumentStream = rdr.BaseStream;// after this line, I'm expecting the browser to display the facebook login page. 
MessageBox.Show(rdr.ReadToEnd()); 
//rdr.Close(); 
//response.Close(); 

此外,您可能會遇到錯誤,因爲無法解析服務器上的相對路徑資源。所以,我建議你使用:

webBrowser1.Navigate("http://www.facebook.com"); 
+0

這只是一個示例網址;並且在運行時會動態生成,因此會發生變化......這意味着我無法使用Navigate方法。 – MrClan

+0

加評論「rdr.Close()」不會改變任何東西! – MrClan

+0

@Pratik Chandra:你好,我想你也需要評論'//MessageBox.Show(rdr.ReadToEnd())'。 –

相關問題