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
  • 相关阅读:
    mac搭建mamp环境
    iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)
    iOS开发UI篇—UITabBarController简单介绍
    OS开发UI篇—ios应用数据存储方式(归档)
    iOS开发UI篇—ios应用数据存储方式(偏好设置)
    IOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—UIWindow简单介绍
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    IOS开发UI篇—导航控制器属性和基本使用
  • 原文地址:https://www.cnblogs.com/anjou/p/667253.html
Copyright © 2011-2022 走看看