using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.IO; using System.Collections; using System.Web; namespace CnGineAppCode.Comm { public class HttpUtility { // //private static readonly string defaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; private static readonly string defaultUserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"; private CookieContainer _cookieContainer = new CookieContainer(); public CookieContainer CookieContainer { set { this._cookieContainer = value; } get { return this._cookieContainer; } } #region Get请求 public string CreateGet(string url) { return CreateGet(url, Encoding.UTF8, null, null); } public string CreateGet(string url, Encoding coding) { return CreateGet(url, coding, null, null); } public string CreateGet(string url, Encoding coding, string userAgent, CookieCollection cookies) { HttpWebRequest request = null; HttpWebResponse response = null; request = WebRequest.Create(url) as HttpWebRequest; request.Method = "GET"; request.KeepAlive = false; //request.ContentType = "application/x-www-form-urlencoded"; //Cookie if (cookies != null) CookieContainer.Add(cookies); request.CookieContainer = CookieContainer; //userAgent if (!string.IsNullOrEmpty(userAgent)) request.UserAgent = userAgent; else request.UserAgent = defaultUserAgent; // 提交请求数据 //if (!string.IsNullOrEmpty(para)) //{ // byte[] data = Encoding.ASCII.GetBytes(para); // using (Stream stream = request.GetRequestStream()) // { // stream.Write(data, 0, data.Length); // } //} // 接收返回的页面 response = request.GetResponse() as HttpWebResponse; System.IO.Stream responseStream = response.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, coding); string srcString = reader.ReadToEnd(); return srcString; } #endregion #region Post请求 public string CreatePost(string url, Hashtable param) { return CreatePost(url, Encoding.UTF8, param, null, null); } public string CreatePost(string url, Hashtable param, Encoding coding) { return CreatePost(url, coding, param, null, null); } public string CreatePost(string url, Encoding coding, Hashtable param, string userAgent, CookieCollection cookies) { HttpWebRequest request = null; HttpWebResponse response = null; request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; request.KeepAlive = false; request.ContentType = "application/x-www-form-urlencoded;charset=gb2312"; //Cookie if (cookies != null) CookieContainer.Add(cookies); request.CookieContainer = CookieContainer; //userAgent if (!string.IsNullOrEmpty(userAgent)) request.UserAgent = userAgent; else request.UserAgent = defaultUserAgent; // 提交请求数据 if (param!= null && param.Keys.Count>0) { StringBuilder sb = new StringBuilder(); foreach (string key in param.Keys) { string value = ""; if (param[key] != null && !string.IsNullOrEmpty(param[key].ToString())) { value = System.Web.HttpUtility.UrlEncode(param[key].ToString(), coding); } sb.AppendFormat("{0}={1}&", key, value); } byte[] data = Encoding.ASCII.GetBytes(System.Text.RegularExpressions.Regex.Replace(sb.ToString(), "&$", "")); using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } } // 接收返回的页面 response = request.GetResponse() as HttpWebResponse; System.IO.Stream responseStream = response.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(responseStream, coding); string srcString = reader.ReadToEnd(); return srcString; } #endregion } }