/// <summary>
/// 通過get方式請求頁面,傳遞一個實例化的cookieContainer
/// </summary>
/// <param name="postUrl"></param>
/// <param name="cookie"></param>
/// <returns></returns>
public static ArrayList GetHtmlData(string postUrl, CookieContainer cookie)
{
HttpWebRequest request;
HttpWebResponse response;
ArrayList list = new ArrayList();
request = WebRequest.Create(postUrl) as HttpWebRequest;
request.Method = "GET";
request.UserAgent = "Mozilla/4.0";
request.CookieContainer = cookie;
request.KeepAlive = true;
request.CookieContainer = cookie;
try
{
//獲取服務器返回的資源
using (response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default))
{
cookie.Add(response.Cookies);
//保存Cookies
list.Add(cookie);
list.Add(reader.ReadToEnd());
list.Add(Guid.NewGuid().ToString());//圖片名
}
}
}
catch (WebException ex)
{
list.Clear();
list.Add("發生異常/n/r");
WebResponse wr = ex.Response;
using (Stream st = wr.GetResponseStream())
{
using (StreamReader sr = new StreamReader(st, System.Text.Encoding.Default))
{
list.Add(sr.ReadToEnd());
}
}
}
catch (Exception ex)
{
list.Clear();
list.Add("5");
list.Add("發生異常:" + ex.Message);
}
return list;
}
//2.下載驗證碼,保存在本地。
/// <summary>
/// 下載驗證碼圖片並保存到本地
/// </summary>
/// <param name="Url">驗證碼URL</param>
/// <param name="cookCon">Cookies值</param>
/// <param name="savePath">保存位置/文件名</param>
public static bool DowloadCheckImg(string Url, CookieContainer cookCon, string savePath)
{
bool bol = true;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Url);
//屬性配置
webRequest.AllowWriteStreamBuffering = true;
webRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;
webRequest.MaximumResponseHeadersLength = -1;
webRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "GET";
webRequest.Headers.Add("Accept-Language", "zh-cn");
webRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
webRequest.KeepAlive = true;
webRequest.CookieContainer = cookCon;
try
{
//獲取服務器返回的資源
using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
{
using (Stream sream = webResponse.GetResponseStream())
{
List<byte> list = new List<byte>();
while (true)
{
int data = sream.ReadByte();
if (data == -1)
break;
list.Add((byte)data);
}
File.WriteAllBytes(savePath, list.ToArray());
}
}
}
catch (WebException ex)
{
bol = false;
}
catch (Exception ex)
{
bol = false;
}
return bol;
}
//3。發送post數據
/// <summary>
/// 發送相關數據至頁面
/// 進行登錄操作
/// 並保存cookie
/// </summary>
/// <param name="postData"></param>
/// <param name="postUrl"></param>
/// <param name="cookie"></param>
/// <returns></returns>
public static ArrayList PostData(string postData, string postUrl, CookieContainer cookie)
{
ArrayList list = new ArrayList();
HttpWebRequest request;
HttpWebResponse response;
ASCIIEncoding encoding = new ASCIIEncoding();
request = WebRequest.Create(postUrl) as HttpWebRequest;
byte[] b = encoding.GetBytes(postData);
request.UserAgent = "Mozilla/4.0";
request.Method = "POST";
request.CookieContainer = cookie;
request.ContentLength = b.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(b, 0, b.Length);
}
try
{
//獲取服務器返回的資源
using (response = request.GetResponse() as HttpWebResponse)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
if (response.Cookies.Count > 0)
cookie.Add(response.Cookies);
list.Add(cookie);
list.Add(reader.ReadToEnd());
}
}
}
catch (WebException wex)
{
WebResponse wr = wex.Response;
using (Stream st = wr.GetResponseStream())
{
using (StreamReader sr = new StreamReader(st, System.Text.Encoding.Default))
{
list.Add(sr.ReadToEnd());
}
}
}
catch (Exception ex)
{
list.Add("發生異常/n/r" + ex.Message);
}
return list;
}