现在的位置: 首页 > 综合 > 正文

C# 模拟网页登录[转]

2012年05月08日 ⁄ 综合 ⁄ 共 3437字 ⁄ 字号 评论关闭

 

经过实测,此代码可用。

 

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;

抱歉!评论已关闭.