程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用WebClient自動填寫並提交ASP.NET頁面表單

使用WebClient自動填寫並提交ASP.NET頁面表單

編輯:.NET實例教程

填寫和提交以上表單的代碼如下:

       // 要提交表單的URI字符串。
       string uriString = "http://www.xxx.com/Login.ASPx";
       // 要提交的字符串數據。
       string postString = "userName=user1&password=passWord1";
       // 初始化WebClIEnt
       WebClient webClient = new WebClIEnt();
       webClIEnt.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
       // 將字符串轉換成字節數組
       byte[] postData = Encoding.ASCII.GetBytes(postString);
       // 上傳數據,返回頁面的字節數組
       byte[] responseData = webClIEnt.UploadData(uriString, "POST", postData);
       // 返回的將字節數組轉換成字符串(Html)
       string srcString = Encoding.UTF8.GetString(responseData);
srcStrinig 就是提交表單後所返回頁面的Html。怎麼樣,很簡單吧。

      但是,以上代碼可以提交ASP或JSP生成的表單,卻不能提交ASP.NET表單。因為提交ASP.Net表單時,必須給“__VIEWSTATE”和 “__EVENTVALIDATION”賦值。“__VIEWSTATE”和“__EVENTVALIDATION”的值可以通過在要提交的頁面上按右鍵 “查看源文件”中找到。如下:
        id="__VIEWSTATE" value="/wEPDwUKMTg0NTgwMzM2M2RksjXHwIOzdq/skwDy1k6qTexm2j0="
        id="__EVENTVALIDATION" value="/wEWBAKxhbOEAQKPpuq2CALyveCRDwLejM6fDwP2723lUdzBJVBIAVzbpM2sXYqc"
通過“查看源文件”得到的“__VIEWSTATE”和“__EVENTVALIDATION”的值還不能直接提交給表單,還需要轉換成URL編碼的字符串。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved