C# 模拟网页登录[转]
经过实测,此代码可用。
using System.Net;
public class HttpRec
{
public string _Url = "http://login.xiaonei.com/Login.do";
private string _strErr;
private CookieContainer _CookieContainer = new CookieContainer();
public string GetCode()
{
HttpWebRequest rqq = (HttpWebRequest)HttpWebRequest.Create(_Url);
rqq.Method = "Get";
rqq.KeepAlive = true;
if (rqq.CookieContainer == null)
{
rqq.CookieContainer = _CookieContainer;
}
HttpWebResponse rpp = (HttpWebResponse)rqq.GetResponse();
return "";
}
public string LoginWeb(string PostData)
{
string str = string.Empty;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(_Url);//创建req
req.Accept = "*/*"; //接受任意文件
req.UserAgent = " Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)"; // 模拟使用IE在浏览
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16";
req.KeepAlive = true;
req.CookieContainer = _CookieContainer;
if ((PostData != null & PostData.Length > 0) || _Url.Contains("?"))
{
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
req.AutomaticDecompression = DecompressionMethods.GZip;
System.IO.Stream sw = null;
try
{
sw = req.GetRequestStream();
sw.Write(b, 0, b.Length);
}
catch (System.Exception ex)
{
this._strErr = ex.Message;
}
finally
{
if (sw != null) { sw.Close(); }
}
}
HttpWebResponse rep = null;
System.IO.StreamReader sr = null;
try
{
req.Method = "GET";
rep = (HttpWebResponse)req.GetResponse();
sr = new System.IO.StreamReader(rep.GetResponseStream(), Encoding.UTF8);
str = sr.ReadToEnd();
if (sr != null)
{
sr.Close();
}
}
catch (Exception e)
{ MessageBox.Show(e.Message); }
return str;
}
}
//实例应用
string strId = "XXXXXXXXXX";//用户名
string strPassword = "********";//密码
string strsubmit = "YES";
string postData = "email=" + strId;
postData += ("&password=" + strPassword);
postData += ("&Accept=" + strsubmit);
HttpRec.HttpRec HttpRec = new HttpRec.HttpRec();
HttpRec.GetCode();
string content = HttpRec.LoginWeb(postData);
textBox1.Text = content;
HttpRec._Url = "http://tycoon.xiaonei.com/AjaxTycoon.do?action=get&select_type=1";
content = HttpRec.LoginWeb("");
textBox1.Text = content;
public class HttpRec
{
public string _Url = "http://login.xiaonei.com/Login.do";
private string _strErr;
private CookieContainer _CookieContainer = new CookieContainer();
public string GetCode()
{
HttpWebRequest rqq = (HttpWebRequest)HttpWebRequest.Create(_Url);
rqq.Method = "Get";
rqq.KeepAlive = true;
if (rqq.CookieContainer == null)
{
rqq.CookieContainer = _CookieContainer;
}
HttpWebResponse rpp = (HttpWebResponse)rqq.GetResponse();
return "";
}
public string LoginWeb(string PostData)
{
string str = string.Empty;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(_Url);//创建req
req.Accept = "*/*"; //接受任意文件
req.UserAgent = " Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)"; // 模拟使用IE在浏览
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16";
req.KeepAlive = true;
req.CookieContainer = _CookieContainer;
if ((PostData != null & PostData.Length > 0) || _Url.Contains("?"))
{
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] b = Encoding.Default.GetBytes(PostData);
req.ContentLength = b.Length;
req.AutomaticDecompression = DecompressionMethods.GZip;
System.IO.Stream sw = null;
try
{
sw = req.GetRequestStream();
sw.Write(b, 0, b.Length);
}
catch (System.Exception ex)
{
this._strErr = ex.Message;
}
finally
{
if (sw != null) { sw.Close(); }
}
}
HttpWebResponse rep = null;
System.IO.StreamReader sr = null;
try
{
req.Method = "GET";
rep = (HttpWebResponse)req.GetResponse();
sr = new System.IO.StreamReader(rep.GetResponseStream(), Encoding.UTF8);
str = sr.ReadToEnd();
if (sr != null)
{
sr.Close();
}
}
catch (Exception e)
{ MessageBox.Show(e.Message); }
return str;
}
}
//实例应用
string strId = "XXXXXXXXXX";//用户名
string strPassword = "********";//密码
string strsubmit = "YES";
string postData = "email=" + strId;
postData += ("&password=" + strPassword);
postData += ("&Accept=" + strsubmit);
HttpRec.HttpRec HttpRec = new HttpRec.HttpRec();
HttpRec.GetCode();
string content = HttpRec.LoginWeb(postData);
textBox1.Text = content;
HttpRec._Url = "http://tycoon.xiaonei.com/AjaxTycoon.do?action=get&select_type=1";
content = HttpRec.LoginWeb("");
textBox1.Text = content;
满招损,谦受益,学,永无止境
posted on 2009-06-18 01:02 zeroStart 阅读(3113) 评论(0) 编辑 收藏 举报