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

上次写了 使用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

相关文章:使用WebClient自动填写并提交ASP.NET页面表单
             在C#中使用正则表达式自动匹配并获取所需要的数据

本文地址:http://www.cnblogs.com/anjou/archive/2007/03/07/667253.html

posted on 2007-03-07 23:03 大豆男生 阅读(3221) 评论(7)  编辑 收藏 网摘 所属分类: .NET

评论

#1楼 2007-03-08 14:48 高海东      

不错   回复  引用  查看    

#2楼 2007-09-12 08:56 Franking[未注册用户]

收了~NICE~   回复  引用    

#3楼 2007-11-02 11:26 Franking      

oh yeah 我也在cnblogs开博了。决定把技术方面的东西搬到这里来,以后来这里混。这里还是专业一些啊,ZBLOG程序不够用了。。。
看看以前看的东西,顶大豆一下。
顺便说下,webclieng 用 UploadString 和 DownloadString 一般情况下也就行了。
  回复  引用  查看    

#4楼[楼主] 2007-11-02 12:37 大豆男生      

@Franking
恭喜你在博客园安家了。你多多发贴我们大家多多交流啊!
  回复  引用  查看    

#5楼 2008-01-23 21:29 婲生魚      

http://www.cnblogs.com/cookies325" target="_new">http://www.cnblogs.com/cookies325
里面有大家需要的正则
取ViewState等等..
  回复  引用  查看    

#6楼 2009-03-29 11:34 guolu[未注册用户]

请问下博主的QQ是多少,想请教下你.我的是364904096
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 667253




相关文章:

相关链接:

导航

公告


励志照亮人生,创业改变命运!

Blog 访问量,点击这里查看如何添加访问计数器。
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

与我联系

搜索

 

常用链接

留言簿

我的标签

随笔分类(117)

随笔档案(121)

收藏夹(137)

我的连接

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜