在没有做题目中所述的内容的时候,感觉这应该是很简单的东西,但是当真正开始做的时候却发现,有很多问题
现在在这里写出来,供和我一样水平不高的参考一下。
在写本文之前参照了一下文章
欢迎使用****论坛阅读器 : **** Reader(附全部源代码) 最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
C#通过webRequest保持在同一Session中Post数据 http://blog.****.net/crabo/archive/2005/12/08/547092.aspx
c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求
主要就组织要提交的数据,然后以post方式提交。
假设我们有如下的网页
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
1
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
2
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
3
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
5
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<html xmlns="http://www.w3.org/1999/xhtml" >
6
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<head runat="server">
7
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<title>无标题页</title>
8
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</head>
9
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<body>
10
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<form id="form1" runat="server">
11
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<div>
12
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<table>
13
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<tr>
14
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<td> 姓名:</td><td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
15
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</tr>
16
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<tr>
17
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<td> 昵称:</td><td><asp:TextBox ID="txtPwd" runat="server" TextMode="Password" Width="149px"></asp:TextBox></td>
18
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</tr>
19
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</table>
20
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<asp:Button ID="btnUpdate" runat="server" Text="Longon" OnClick="btnUpdate_Click" Width="60px" />
21
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<asp:Button ID="btnClose" runat="server" OnClick="btnClose_Click" Text="Close" /><br />
22
23
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</div>
24
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</form>
25
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</body>
26
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</html>
用IE访问这个页面的时候可以得到如下的输出
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
1
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
2
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
3
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
5
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<html xmlns="http://www.w3.org/1999/xhtml" >
6
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<head><title>
7
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
无标题页
8
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</title></head>
9
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<body>
10
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<form name="form1" method="post" action="Default.aspx" id="form1">
11
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<div>
12
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTg4ODA4NDE0NmRk6Ma0MaCJKrrNLGLfO4qYNezoxY4=" />
13
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</div>
14
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
15
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<div>
16
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<table>
17
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<tr>
18
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<td> 姓名:</td><td><input name="txtName" type="text" id="txtName" /></td>
19
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</tr>
20
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<tr>
21
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<td> 昵称:</td><td><input name="txtPwd" type="password" id="txtPwd" style="width:149px;" /></td>
22
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</tr>
23
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</table>
24
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<input type="submit" name="btnUpdate" value="Logon" id="btnUpdate" style="width:60px;" />
25
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<input type="submit" name="btnClose" value="Close" id="btnClose" /><br />
26
27
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</div>
28
29
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<div>
30
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
31
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQKcopufDgLEhISFCwKd+7qdDgLynailDAKT+PmaCJleqITXMfQuE9LK49YoxHV2oTzQ" />
32
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</div></form>
33
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</body>
34
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
</html>
35
由上面的代码可以看出除了txtName,txtPwd以及两个按钮外,多出了两个__VIEWSTATE,__EVENTVALIDATION这四个表单需要提交到的,要模拟哪个按钮,在加上哪个按钮的表单的值就可以了,如:btnUpdate=Logon
在拼接提交的字符串的时候注意一下,用System.Web.HttpUtility.UrlEncode方法转换成Url编码的字符串。
下面是针对这个页面的btnUpdate按钮的提交数据
1 string __VIEWSTATE = "/wEPDwUKMTg4ODA4NDE0NmRk6Ma0MaCJKrrNLGLfO4qYNezoxY4=";
2 string __EVENTVALIDATION = "/wEWBQKcopufDgLEhISFCwKd+7qdDgLynailDAKT+PmaCJleqITXMfQuE9LK49YoxHV2oTzQ";
3
4 __VIEWSTATE = System.Web.HttpUtility.UrlEncode(__VIEWSTATE);
5
6 __EVENTVALIDATION = System.Web.HttpUtility.UrlEncode(__EVENTVALIDATION);
7
8 string strPostData = String.Format("__VIEWSTATE={0}&txtName={1}&txtPwd={2}&btnUpdate=Longon&__EVENTVALIDATION={3}"
9 , __VIEWSTATE, this.txtName.Text, this.txtPassword.Text, __EVENTVALIDATION
10 );
然后创建一个HttpWebRequest对象,设置提交方式是post,然后把上面准备的字符串写进请求数据流里
基本上就可以了
如果有需要在访问不同页面时保存Session的话,需要设置HttpWebRequest对象的CookieContainer属性,保证每次设置的CookieContainer都是同一个对象就可以了。
下面是这个类就是向WEB页面发出请求,并得到返回数据的类
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Db250cmFjdGVkQmxvY2suZ2lm.gif?w=700)
读取网页内容
使用方法如下
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
1
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
private WebPageReader webReader = new WebPageReader();
2
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
3
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
string __VIEWSTATE = "/wEPDwUKMTg4ODA4NDE0NmRk6Ma0MaCJKrrNLGLfO4qYNezoxY4=";
4
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
string __EVENTVALIDATION = "/wEWBQKcopufDgLEhISFCwKd+7qdDgLynailDAKT+PmaCJleqITXMfQuE9LK49YoxHV2oTzQ";
5
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
6
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
__VIEWSTATE = System.Web.HttpUtility.UrlEncode(__VIEWSTATE);
7
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
8
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
__EVENTVALIDATION = System.Web.HttpUtility.UrlEncode(__EVENTVALIDATION);
9
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
10
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
string strPostData = String.Format("__VIEWSTATE={0}&txtName={1}&txtPwd={2}&btnUpdate=Longon&__EVENTVALIDATION={3}"
11
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
, __VIEWSTATE, this.txtName.Text, this.txtPassword.Text, __EVENTVALIDATION
12
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
);
13
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
string strHTML;
14
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
15
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
try
16
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
{
17
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
do
18
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700)
{
19
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
strHTML = webReader.GetHTML("http://localhost:3517/WebSite1/Default.aspx", strPostData);
20
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700)
} while (webReader.IsKeepAlive);
21
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
22
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
23
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
this.richTextBox1.Text = strHTML;
24
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700)
}
25
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700)
catch (Exception ex)
26
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700)
{
27
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
if (ex.InnerException != null)
28
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700)
{
29
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
MessageBox.Show(ex.Message + "/n" + ex.InnerException.Message);
30
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700)
}
31
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
else
32
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700)
{
33
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700)
MessageBox.Show(ex.Message);
34
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700)
}
35
![[转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求](https://image.miaokee.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700)
}