我将编写一个应用程序如下:有一个 Web 应用程序,通过这个 Web 应用程序,机构与中央组织通信(发送数据) 现在,这些机构中的一个需要一个如下应用程序:当用户准备一份数据副本将数据输入到 Web 应用程序表单。我决定编写一个 Windows 应用程序并使用 webbrowser 控件从网页获取数据。问题是一些标签和控件没有标识和获取它们的数据的 ID 或名称。有什么解决办法。提前致谢
问问题
1336 次
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
Wherefield1
等field2
表示 Web 应用程序期望的 POST 变量。
如果您需要先登录,您也需要处理此问题,首先发送登录请求并使用 CookieContainer 存储会话 id,如下所示:
一旦你完成了这项工作,你实际上可以将响应加载到 Web 浏览器中,如此处所述。
如果您需要 Web 浏览器控件来保留登录 cookie,这可能会有所帮助
于 2013-04-24T08:31:02.750 回答