2013-04-24 23 views
-1

我要編寫一個應用程序如下: 有是通過此Web應用程序,機構與中央 組織(發送數據) 通信現在的Web應用程序,其中一個機構需要如下應用程序: 當用戶將數據輸入到Web應用程序表單時,準備一份數據副本。 我決定編寫一個Windows應用程序,並使用webbrowser控件,從網頁獲取數據。 問題是一些標籤和控件沒有標識和獲取它們的數據的標識或名稱,有什麼想法可以解決。 在此先感謝使用WebBrowser控件在C#中獲得價值

回答

0

如果你知道目標Web應用程序需要什麼樣的數據,我想你可以,而不是使用Web瀏覽器控制,複製在C#應用程序的形式和使用的HttpWebRequest或類似的帖子中的數據。

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://the.url/"); 

httpRequest.Method = "POST"; 
httpRequest.ContentType = "application/x-www-form-urlencoded"; 

string poststring = String.Format("field1={0}&field2={1}",text1.Text,text2.Text); 

byte[] bytedata = Encoding.UTF8.GetBytes(poststring); 
httpRequest.ContentLength = bytedata.Length; 

Stream requestStream = httpRequest.GetRequestStream(); 
requestStream.Write(bytedata, 0, bytedata.Length); 
requestStream.Close(); 


HttpWebResponse httpWebResponse = (HttpWebResponse)httpRequest.GetResponse(); 
// Handle the response 

field1field2等代表POST變量的Web應用程序的期望。

如果您需要先登錄,您需要處理這個問題,以及,首先發送一個登錄請求和使用的CookieContainer存儲會話ID,如下所示:

C# keep session id over httpwebrequest

一旦你得到了這個工作你實際上可以將響應加載到Web瀏覽器中,如此處所述。

Load web browser with web response

如果您需要的Web瀏覽器控件保留登錄cookie也許這可能是幫助

Use cookies from CookieContainer in WebBrowser

+0

什麼複製在C#應用程序的形式是什麼意思? – samira 2013-04-24 09:12:58

+0

我的意思是,創建一個與Web應用程序具有相同字段(文本框等)的WinForms或WPF應用程序。 – havardhu 2013-04-24 09:15:43