Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以通过编程方式填写Ajax表单?_C#_Post_Ajax Forms - Fatal编程技术网

C# 是否可以通过编程方式填写Ajax表单?

C# 是否可以通过编程方式填写Ajax表单?,c#,post,ajax-forms,C#,Post,Ajax Forms,我正在做一些自动化工作,可以在网站上四处走动&发布HTML表单,但现在我面临一个新的挑战,Ajaxforms 由于没有可供阅读的源代码,我想知道是否可以用C#编程地填写Ajax表单。我目前正在使用不可见的axWebBrowser 提前感谢您的帮助 你看过硒的使用吗。好的,您可以用C语言编写测试用例,我知道我们的测试人员以前已经成功地使用它对支持Ajax的ASP.NET站点进行了UI测试 您看过硒的使用吗。好的,您可以用C语言编写测试用例,我知道我们的测试人员以前已经成功地使用它对支持Ajax的A

我正在做一些自动化工作,可以在网站上四处走动&发布HTML表单,但现在我面临一个新的挑战,Ajaxforms

由于没有可供阅读的源代码,我想知道是否可以用C#编程地填写Ajax表单。我目前正在使用不可见的axWebBrowser


提前感谢您的帮助

你看过硒的使用吗。好的,您可以用C语言编写测试用例,我知道我们的测试人员以前已经成功地使用它对支持Ajax的ASP.NET站点进行了UI测试


您看过硒的使用吗。好的,您可以用C语言编写测试用例,我知道我们的测试人员以前已经成功地使用它对支持Ajax的ASP.NET站点进行了UI测试


是的,但我建议使用不同的方法来请求/响应服务器页面,包括常规页面和AJAX处理程序页面

在c#中,尝试使用/或更专门的HttpWebRequest/HttpWebResponse类

Ajax不过是一种技术的“花哨”名称,它允许Javascript向服务器发出HTTP请求,服务器通常实现一些处理程序,为Javascript调用方生成专门的、轻量级的内容(仅编码为JSON)

因此,为了模拟AJAX调用,您所要做的就是检查您的目标应用程序(您要“发布”到的web页面)并查看AJAX通信使用的格式-然后使用WebREquest/WebResponse类从C#复制页面的Javascript行为

请参阅-这是一个很棒的工具,允许您检查网页,以确定它发出什么调用、对哪些页面以及这些页面响应什么。它在检查AJAX调用方面也做得很好

下面是如何执行web请求的一个非常简单的示例:

HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://www.mysite.com");

using (HttpWebResponse resp = (HttpWebResponse)wReq.GetResponse())
{
   // NOTE: A better approach would be to use the encoding returned by the server in
   // the Response headers (I'm using UTF 8 for brevity)
   using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
   {
       string content = sr.ReadToEnd();
       // Do something with the content
   }
}    
POST也是一个请求,但使用不同的方法。有关如何完成一篇非常简单的文章的示例,请参见

编辑-有关使用Firebug检查页面行为的详细信息

我所说的检查您试图复制的页面的意思是使用一个工具(我使用Firefox上的Firebug)来确定页面和服务器之间的信息流

使用Firebug,您可以通过使用“网络”和“控制台”面板来实现这一点。“网络”面板列出加载页面时浏览器执行的所有请求。而“控制台”将列出加载页面后页面与服务器之间发生的通信。加载页面后发生的那些通信本质上是您希望复制的AJAX调用(注意:必须在Firebug中启用网络监控才能正常工作)

查看以了解有关Firebug的更多信息,并使用控制台面板进行实验以了解有关AJAX请求的更多信息

关于“使用WebRequest/WebResponse从C#复制页面的行为”,您必须意识到,正如我前面所说的,Javascript AJAX调用只不过是一个HTTP请求。这是JavaScript向web服务器发出的“幕后”或带外HTTP请求。要复制这一点,它实际上与复制一个正常的GET或一个正常的POST没有什么不同,就像我上面所展示的那样。这就是Firebug发挥作用的地方。使用它,您可以查看Javascript发出的请求——查看控制台面板,并查看请求消息的外观

然后,您可以使用与上面相同的技术,使用HttpWebRequest/HttpWebResponse生成与Javascript相同类型的请求,只从C#执行


Gregg,我希望这能稍微澄清我的答案,但除此之外,我建议玩Firebug,也许可以学习更多关于HTTP协议如何工作以及AJAX作为一种技术如何工作的知识。

是的,但我建议使用不同的方法来请求/响应服务器页面,包括常规页面,以及AJAX处理程序页面

在c#中,尝试使用/或更专门的HttpWebRequest/HttpWebResponse类

Ajax不过是一种技术的“花哨”名称,它允许Javascript向服务器发出HTTP请求,服务器通常实现一些处理程序,为Javascript调用方生成专门的、轻量级的内容(仅编码为JSON)

因此,为了模拟AJAX调用,您所要做的就是检查您的目标应用程序(您要“发布”到的web页面)并查看AJAX通信使用的格式-然后使用WebREquest/WebResponse类从C#复制页面的Javascript行为

请参阅-这是一个很棒的工具,允许您检查网页,以确定它发出什么调用、对哪些页面以及这些页面响应什么。它在检查AJAX调用方面也做得很好

下面是如何执行web请求的一个非常简单的示例:

HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://www.mysite.com");

using (HttpWebResponse resp = (HttpWebResponse)wReq.GetResponse())
{
   // NOTE: A better approach would be to use the encoding returned by the server in
   // the Response headers (I'm using UTF 8 for brevity)
   using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
   {
       string content = sr.ReadToEnd();
       // Do something with the content
   }
}    
POST也是一个请求,但使用不同的方法。有关如何完成一篇非常简单的文章的示例,请参见

编辑-有关使用Firebug检查页面行为的详细信息

我所说的检查您试图复制的页面的意思是使用一个工具(我使用Firefox上的Firebug)来确定页面和服务器之间的信息流

使用Firebug,您可以通过使用“网络”和“控制台”面板来实现这一点。“网络”面板列出加载页面时浏览器执行的所有请求。而“控制台”将列出加载页面后页面与服务器之间发生的通信。加载页面后发生的那些通信本质上是您希望复制的AJAX调用(注意:必须在Firebug中启用网络监控才能正常工作)

查看以了解有关Firebug的更多信息,并使用控制台面板进行实验以了解有关AJAX请求的更多信息

关于“使用WebRequest/WebResponse从C#复制页面的行为”——什么