日期:2014-05-17 浏览次数:20576 次
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.IO; namespace PostData { public class Post { public string CookieHeader { get; set; } public string EncodeName { get; set; } public string PageContent { get; set; } public Dictionary<string, string> Params { get; set; } public CookieContainer Container { get; set; } public string PostData(string strUrl, string strArgs, string strRefer, string encodename, string method) { return this.PostData(strUrl, strArgs, strRefer, encodename, method, string.Empty); } public string PostData(string strUrl, Dictionary<string, string> dics, string strRefer, string encodename, string method) { string strArgs = string.Empty; StringBuilder objEncodedPostDatas = new StringBuilder(); if (dics != null && dics.Count > 0) { foreach (KeyValuePair<string, string> kv in dics) { objEncodedPostDatas.Append(HttpUtility.UrlEncode(kv.Key)); objEncodedPostDatas.Append("="); objEncodedPostDatas.Append(HttpUtility.UrlEncode(kv.Value)); objEncodedPostDatas.Append("&"); } } strArgs = objEncodedPostDatas.ToString(); return this.PostData(strUrl, strArgs, strRefer, encodename, method, string.Empty); } /// <summary> /// 模拟登陆页面,提交登录数据进行登录,并记录header中的cookie /// </summary> /// <param name="strURL">提交的页面地址</param> /// <param name="strArgs">用户登录数据</param> /// <param name="strRefer">引用地址</param> /// <param name="code">网站编码名称</param> /// <param name="method"></param> /// <param name="contentType"></param> /// <returns></returns> public string PostData(string strURL, string strArgs, string strRefer, string code, string method, string contentType) { if (this.Container == null) this.Container = new CookieContainer(); strRefer = strURL; Uri uri = new Uri("http://" + new Uri(strURL).Host); try { string strRs = string.Empty; HttpWebRequest myHttpWebRequest = WebRequest.Create(strURL) as HttpWebRequest; myHttpWebRequest.AllowAutoRedirect = true; myHttpWebRequest.KeepAlive = true; myHttpWebRequest.Accept = "image/gif,image/x-xbitmap,image/jpeg,image/pjpeg," + "application/vnd.ms-excel,application/msword,application/x-shockwave-flash,*/*"; myHttpWebRequest.Referer = strRefer; myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)"; if (string.IsNullOrEmpty(contentType)) { contentType = "application/x-www-form-urlencoded"; } myHttpWebRequest.ContentType = contentType; myHttpWebRequest.Method = method; myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip,deflate"); myHttpWebRequest.CookieContainer = this.Container;// new CookieContainer(); byte[] postData = Encoding.GetEncoding(code).GetBytes(strArgs);