2011-07-12 10 views
0

私はWebBrowserでページを読み込もうとしています。私はDocumentStreamプロパティを設定しようとしましたが、ブラウザはナビゲートしていません。これは私のコードです:WebBrowserは、DocumentStreamが設定されていてもナビゲートしません。

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

これは単なる例のWebアドレスです。実行時には動的に生成され、したがって変更されます...つまり、Navigateメソッドを使用することはできません。 – MrClan

+0

とコメント "rdr.Close()"は何も変更しません! – MrClan

+0

@Pratik Chandra:そうですね、あなたは '//MessageBox.Show(rdr.ReadToEnd()) 'にコメントする必要があります。 –

関連する問題