0

我想制作一个填写并提交表单(在 asp.net 网站中)的应用程序(在 .Net 中)。

这个应用程序应该读取页面,找到字段(输入),提取我想要填写的字段的名称/ID,并将页面提交给服务器。

我不想要一个拥有网络浏览器控件并自动导航的应用程序!

我所拥有的:我有下载 html 的部分,我有找到字段并提取其名称/ID 的部分。

我需要什么:一种将表单提交到服务器的方法(POST,而不是 GET )。

在页面的 html 上,提交是由 javascript 完成的,如下所示:

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))

问题是:在这种情况下如何提交?

4

4 回答 4

2

您可以使用 javascript 提交:

<script type="text/javascript">
  document.forms["your_form_id"].submit();
</script>
于 2012-02-28T22:39:36.217 回答
2

您可以使用HttpWebRequest/HttpWebResponse对象向服务器发送/接收 HTTP 请求。收到响应后,查找INPUT要修改的各个字段并使用各个字段构建 POST 请求数据块,例如

firstname=Joe&lastname=Doe&...

然后将此作为 POST 请求发送。您还需要构建一组适当的标头来模拟发送请求的真实浏览器,否则站点可能会拒绝正确处理它。

您可以使用 Fiddler 首先导航到该站点并将请求保存在 Firefox 中,然后使用来自这些请求的信息来构建您的HttpWebRequest对象。

HttpWebRequest可以在同步和异步模式下工作,因此您可以使用几行代码下载页面,也可以控制整个下载过程。

于 2012-02-28T22:42:33.237 回答
0

您可以在页面加载后放入 javascript 以提交表单。

document.forms[0].submit();

假设您在页面上只有一个表单,否则您可以将表单的名称放在forms[]括号内的引号中。

于 2012-02-28T22:39:33.043 回答
0

我是否正确地说带有表格的页面不属于您的网站,并且您正在阅读外部网站上的某些表格?

如果您拥有所有字段,您是否还可以读取表单标签上的“操作”属性并使用您已经获得的所有键/值执行 POST 到同一位置?

您可以使用HttpWebRequest在服务器端代码中执行此操作,并以这种方式发送 POST 数据。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

于 2012-02-28T22:44:28.737 回答