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

在asp.net页面上自动提交表单,asp.net,automation,winforms-to-web,Asp.net,Automation,Winforms To Web,我想制作一个应用程序(在.Net中)来填写和提交表单(在asp.Net网站中) 这个应用程序应该阅读页面,找到字段(输入),提取我想要填写的字段的名称/id,然后将页面提交给服务器 我不想要一个拥有webbrowser控件并自动导航的应用程序 我拥有:我拥有下载html的部分,我拥有查找字段并提取其名称/ID的部分 我需要的是:一种将表单提交到服务器的方式(POST,而不是GET) 在页面的html上,提交是通过javascript完成的,如下所示: javascript:WebForm_DoP

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

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

我不想要一个拥有webbrowser控件并自动导航的应用程序

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

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

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

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

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

您可以在页面加载后放入javascript,只需提交表单即可

document.forms[0].submit();

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

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

document.forms[0].submit();

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

您可以使用javascript提交:

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

document.forms[“您的表单id”]。submit();

您可以使用javascript提交:

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

document.forms[“您的表单id”]。submit();
您可以使用/objects向服务器发送/接收HTTP请求。得到响应后,查找要修改的各种
输入
字段,并使用各种字段构建POST请求数据块,如

firstname=Joe&lastname=Doe&……

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

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

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

您可以使用/objects向服务器发送/接收HTTP请求。得到响应后,查找要修改的各种
输入
字段,并使用各种字段构建POST请求数据块,如

firstname=Joe&lastname=Doe&……

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

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


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

我说的带有表单的页面不属于您的网站,并且您正在外部网站上阅读表单,对吗

如果你有所有的字段,难道你不能读取表单标签上的'action'属性,并使用你已经得到的所有键/值执行到同一位置的POST吗

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


我说的带有表单的页面不属于您的网站,并且您正在外部网站上阅读表单,对吗

如果你有所有的字段,难道你不能读取表单标签上的'action'属性,并使用你已经得到的所有键/值执行到同一位置的POST吗

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


我将改为使用类来检索和发布数据@泽特·阿德:你知道吗。我会用这个类来检索和发布数据@泽特·艾迪:你知道吗,谢谢。我将尝试使用Fiddler,也许这将帮助我生成请求。@ZelterAdy Fiddler在顶部有请求块,它将提供Fiddler录制请求时浏览器随请求发送的所有标题。抓取头时,必须将它们添加到请求对象的头集合中,但其中一些不能添加为键/值对-这些必须设置为请求对象的属性。例如,
UserAgent
无法添加为标头-
HttpWebRequest
具有必须设置的UserAgent字符串属性。谢谢。我将尝试使用Fiddler,也许这将帮助我生成请求。@ZelterAdy Fiddler在顶部有请求块,它将提供Fiddler录制请求时浏览器随请求发送的所有标题。抓取头时,必须将它们添加到请求对象的头集合中,但其中一些不能添加为键/值对-这些必须设置为请求对象的属性。例如,
UserAgent
无法添加为标头-
HttpWebRequest
具有必须设置的UserAgent字符串属性。我无法使用此属性。正如我所说的,我不使用浏览器来呈现代码,我只需要一个自动化工具来提交数据!我不能用这个。正如我所说的,我不使用浏览器来呈现代码,我只需要一个自动化工具来提交数据!