private CookieContainer CC = new CookieContainer();private void BugFix_CookieDomain(CookieContainer cookieContainer) { System.Type _ContainerType = typeof(CookieContainer); Hashtable table = (Hashtable)_ContainerType.InvokeMember("m_domainTable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, cookieContainer, new object[] { }); ArrayList keys = new ArrayList(table.Keys); foreach (string keyObj in keys) { string key = (keyObj as string); if (key[0] == '.') { string newKey = key.Remove(0, 1); table[newKey] = table[keyObj]; } } }private String DoGet(String url){ String data = ""; HttpWebRequest webReqst = (HttpWebRequest)WebRequest.Create(url); webReqst.Method = "GET"; webReqst.UserAgent = DefaultUserAgent; webReqst.KeepAlive = true; //如果在接收後想儲存CookieContainer並再次提交(比如登入後操作) //必須保證url的網域名稱前面有www,比如http://www.a.com, //而http://a.com是不行的,感覺是微軟的bug webReqst.CookieContainer = CC; if (_proxy != "") {//webReqst.Proxy =; } webReqst.Timeout = 30000; try {HttpWebResponse webResponse = (HttpWebResponse)webReqst.GetResponse();if (webResponse.StatusCode == HttpStatusCode.OK && webResponse.ContentLength < 1024 * 1024){ StreamReader reader = new StreamReader(webResponse.GetResponseStream(), Encoding.Default); data = reader.ReadToEnd();} } catch { } return data;}//把HTTP請求獲得的資料儲存成檔案,比片什麼的。private bool DoGet2File(String url, String filename){ HttpWebRequest webReqst = (HttpWebRequest)WebRequest.Create(url); webReqst.Method = "GET"; webReqst.UserAgent = DefaultUserAgent; webReqst.KeepAlive = true; webReqst.CookieContainer = CC; if (_proxy != "") {//webReqst.Proxy =; } webReqst.Timeout = 30000; try {HttpWebResponse webResponse = (HttpWebResponse)webReqst.GetResponse();if (webResponse.StatusCode == HttpStatusCode.OK && webResponse.ContentLength < 1024 * 1024){ FileInfo fi = new FileInfo(filename); FileStream sw = fi.Create(); Stream sm = webResponse.GetResponseStream(); byte[] buffer = new byte[1024]; int size = sm.Read(buffer, 0, buffer.Length); while (size > 0) {sw.Write(buffer, 0, size);size = sm.Read(buffer, 0, buffer.Length); } sm.Close(); sw.Close(); return true;}else return false; } catch {return false; }}private String DoPost(String url, String Content){ string html = ""; HttpWebRequest webReqst = (HttpWebRequest)WebRequest.Create(url); webReqst.Method = "POST"; webReqst.UserAgent = DefaultUserAgent; webReqst.ContentType = "application/x-www-form-urlencoded"; webReqst.ContentLength = Content.Length; webReqst.CookieContainer = CC; if (_proxy != "") {//webReqst.Proxy =; } webReqst.Timeout = 30000; try {byte[] data = Encoding.Default.GetBytes(Content);Stream stream = webReqst.GetRequestStream();stream.Write(data, 0, data.Length);HttpWebResponse webResponse = (HttpWebResponse)webReqst.GetResponse();if (webResponse.StatusCode == HttpStatusCode.OK && webResponse.ContentLength < 1024 * 1024){ StreamReader reader = new StreamReader(webResponse.GetResponseStream(), Encoding.Default); html = reader.ReadToEnd();} } catch { } return html;}