我想创建一个填写并提交表单的应用程序(在.Net中)(在asp.net网站中)。
此应用程序应该读取页面,找到字段(输入),提取我想要填写的字段的名称/ ID,并将页面提交给服务器。
我不想要一个拥有网页浏览器控件并自动导航的应用程序!
我拥有:我有下载html的部分,我有找到字段并提取其名称/ ID的部分。
我需要什么:一种将表单提交到服务器的方法( POST ,而不是GET)。
在页面的html上,提交是通过javascript完成的,如下所示:
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))
问题是:在这种情况下如何提交?
答案 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