您的位置:首页 > 编程语言 > ASP

使用WebClient自动填写并提交ASP.NET页面表单的源代码

2009-04-29 13:41 519 查看
上次写了 使用WebClient自动填写并提交ASP.NET页面表单 一些朋友说需要完整的源代码。今天我把源代码整理了一下传了上来,供大家参考。

try

{

// 要提交表单的URI字符串。

string uriString = "http://localhost:1165/WebTest/MyLogin.aspx";

///////////////////////////////////////

// 打开页面

///////////////////////////////////////

WebClient webClient = new WebClient();

byte[] responseData = webClient.DownloadData(uriString);

string srcString = Encoding.UTF8.GetString(responseData);

///////////////////////////////////////

// 填写页面并提交

///////////////////////////////////////

webClient = new WebClient();

webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

// 获取页面的 VeiwState

string viewStateFlag = "id=\"__VIEWSTATE\" value=\"";

int i = srcString.IndexOf(viewStateFlag) + viewStateFlag.Length;

int j = srcString.IndexOf("\"",i);

string viewState = srcString.Substring(i, j-i);

// 获取页面的 EventValidation

string eventValidationFlag = "id=\"__EVENTVALIDATION\" value=\"";

i = srcString.IndexOf(eventValidationFlag) + eventValidationFlag.Length;

j = srcString.IndexOf("\"", i);

string eventValidation = srcString.Substring(i, j - i);

// 提交按钮的文本

string submitButton = "登录";

viewState = System.Web.HttpUtility.UrlEncode(viewState);

eventValidation = System.Web.HttpUtility.UrlEncode(eventValidation);

submitButton = System.Web.HttpUtility.UrlEncode(submitButton);

// 要提交的字符串数据。格式形如:user=uesr1&password=123

string postString = "userName=1&password=1" + "&loginButton=" + submitButton + "&__VIEWSTATE=" + viewState + "&__EVENTVALIDATION=" + eventValidation;

// 将字符串转换成字节数组

byte[] postData = Encoding.ASCII.GetBytes(postString);

// 上传数据,返回页面的字节数组

responseData = webClient.UploadData(uriString, "POST", postData);

// 将返回的将字节数组转换成字符串(HTML);

// ASP.NET 返回的页面一般是Unicode,如果是简体中文应使用

// Encoding.GetEncoding("GB2312").GetString(responseData)

srcString = Encoding.UTF8.GetString(responseData);

///////////////////////////////////////

// 分析返回的页面

///////////////////////////////////////

//

}

catch (WebException we)

{

string msg = we.Message;

}
使用WebClient自动填写并提交ASP.NET页面表单的完整源代码:AutoPost.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: