C#通过WebClient POST提交表单
2018-07-20 来源:open-open
C#提交表单
// 要提交表单的URI字符串。 string url= http://www.open-open.com/code/; // 要提交的字符串数据。 string postString = "userName=test&Title=test&Content=test"; // 初始化WebClient WebClient webClient = new WebClient(); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); // 将字符串转换成字节数组 byte[] postData = Encoding.ASCII.GetBytes(postString); //ASP.NET 返回的页面一般是Unicode,如果是简体中文应使用 //Encoding.GetEncoding("GB2312").GetBytes(postString) // 上传数据,返回页面的字节数组 byte[] responseData = webClient.UploadData(uriString, "POST", postData); //ASP.NET 返回的页面一般是Unicode,如果是简体中文应使用 //Encoding.GetEncoding("GB2312").GetString(responseData) // 返回的将字节数组转换成字符串(HTML) string srcString = Encoding.UTF8.GetString(responseData);
srcStrinig 就是提交表单后所返回页面的HTML。
提交ASP.NET表单时,必须给“__VIEWSTATE”和“__EVENTVALIDATION”赋值。“__VIEWSTATE”和“__EVENTVALIDATION”的值可以通过在要提交的页面上按右键“查看源文件”中找到。
// 提交按钮的文本 string submitButton = "登录"; // 页面的 VeiwState(可以通过IE打开页面,右键“查看源文件”取得) string viewState = "/wEPDwUKMTg0NTgwMzM2M2RksjXHwIOzdq/skwDy1k6qTexm2j0="; // 页面的 EventValidation(可以通过IE打开页面,右键“查看源文件”取得) string eventValidation = "/wEWBAKxhbOEAQKPpuq2CALyveCRDwLejM6fDwP2723lUdzBJVBIAVzbpM2sXYqc"; submitButton = System.Web.HttpUtility.UrlEncode(submitButton); viewState = System.Web.HttpUtility.UrlEncode(viewState); eventValidation = System.Web.HttpUtility.UrlEncode(eventValidation);
访问第一页时,服务器会返回一个Cookies值,打开第二页时要向服务器提交访问 第一页时返回的Cookies,才能打开页面。可以这样解决:
打开第一页时:
byte[] buff=webclient.DownloadData(url); string cookie=webclient.ResponseHeaders.Get("Set-Cookie");
向第二页发送请求时需要将Cookie带到请求头中。
webclient.Headers.Add("Cookie", cookie);
标签: 服务器
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:C#连接Access数据库的代码
最新资讯
热门推荐