0

我将编写一个应用程序如下:有一个 Web 应用程序,通过这个 Web 应用程序,机构与中央组织通信(发送数据) 现在,这些机构中的一个需要一个如下应用程序:当用户准备一份数据副本将数据输入到 Web 应用程序表单。我决定编写一个 Windows 应用程序并使用 webbrowser 控件从网页获取数据。问题是一些标签和控件没有标识和获取它们的数据的 ID 或名称。有什么解决办法。提前致谢

4

1 回答 1

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

Wherefield1field2表示 Web 应用程序期望的 POST 变量。

如果您需要先登录,您也需要处理此问题,首先发送登录请求并使用 CookieContainer 存储会话 id,如下所示:

C# 通过 httpwebrequest 保留会话 ID

一旦你完成了这项工作,你实际上可以将响应加载到 Web 浏览器中,如此处所述。

使用 Web 响应加载 Web 浏览器

如果您需要 Web 浏览器控件来保留登录 cookie,这可能会有所帮助

在 WebBrowser 中使用来自 CookieContainer 的 cookie

于 2013-04-24T08:31:02.750 回答