zoukankan      html  css  js  c++  java
  • 使用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
  • 相关阅读:
    51串口通信
    juicer使用备忘
    51单片机音乐盒程序
    最精简24L01程序--接收
    sqlserver 数据库迁移
    sqlserver自增主键
    js keycode
    tabindex 去掉虚线
    div 绑定keyup
    sqlserver 当前时间减去30天
  • 原文地址:https://www.cnblogs.com/anjou/p/667253.html
Copyright © 2011-2022 走看看