在asp.net页面上自动提交表单

时间:2012-02-28 22:34:38

标签: asp.net automation winforms-to-web

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

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

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

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

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

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

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

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

4 个答案:

答案 0 :(得分:2)

您只需使用javascript提交:

<script type="text/javascript">
  document.forms["your_form_id"].submit();
</script>

答案 1 :(得分:2)

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

firstname=Joe&lastname=Doe&...

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

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

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

答案 2 :(得分:0)

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

document.forms[0].submit();

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

答案 3 :(得分:0)

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

如果您有所有字段,那么您是否还可以阅读表单标记上的'action'属性并使用您已经获得的所有键/值对同一位置执行POST?

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

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