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;

posted on 2009-06-18 01:02  zeroStart  阅读(3107)  评论(0编辑  收藏  举报

导航