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
  • 相关阅读:
    Vuex
    浏览器渲染页过程描述
    mvvm 模式
    flex 布局
    js 浮点数计算
    3、异步编程-JS种事件队列的优先级
    高阶函数 debounce 和 throttle
    记录学习MVC过程,HTML铺助类(二)
    记录学习MVC过程,控制器方法和视图(一)
    修改以前项目遇到,所有页面继承BaseBage,Sesssion保存一个model,实现登录(记录一下)
  • 原文地址:https://www.cnblogs.com/goody9807/p/1246058.html
Copyright © 2011-2022 走看看