首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 登陆人人网的有关问题

2012-04-04 
c# 登陆人人网的问题首先说明:我纯属是为了测试一下网站自动登陆。小弟用c#测试自动登陆人人网,高手如果做

c# 登陆人人网的问题
首先说明:我纯属是为了测试一下网站自动登陆。
小弟用c#测试自动登陆人人网,高手如果做过,就知道人人网现在登陆的时候,是经过了一个post和三个get才登陆到主页的 。现在问题是,post和第一个get测试结果正确,但是第二个get确出现错误。不晓得为什么,请指点……

C# code
class Program    {        static string HostUrl = "http://www.renren.com/SysHome.do";//xiaonei主页        static string LoginUrl = "http://passport.renren.com/PLogin.do";//login主页        static CookieContainer cookecn = new CookieContainer();        static string email = "xxxxx";        static string pwd = "xxxxx";        static string fisrtgethost = string.Empty;        static string Cookiesstr = string.Empty;        static void Main(string[] args)        {            Console.Write("the first is post:\n");                                   string postdata = "email=" + email + "&password=" + pwd + "&origURL=" + HostUrl                              + "&domain=renren.com";            PostData(postdata);            Console.Write("next host is:\n");            Console.Write(fisrtgethost);            FirstGet(fisrtgethost, Cookiesstr);            SecondGet(HostUrl);            Console.ReadKey();        }       static bool PostData(string postdata)        {            HttpWebRequest request = null;            HttpWebResponse response = null;            try            {                request = (HttpWebRequest)WebRequest.Create(LoginUrl);                request.Method = "POST";                request.Referer = "http://www.renren.com/SysHome.do";                request.ContentType = "application/x-www-form-urlencoded";                request.AllowAutoRedirect = false;                byte[] postdatabtyes = Encoding.UTF8.GetBytes(postdata);                request.ContentLength = postdatabtyes.Length;                request.CookieContainer = cookecn;                request.KeepAlive = true;                Stream requeststream = request.GetRequestStream();                requeststream.Write(postdatabtyes, 0, postdatabtyes.Length);                requeststream.Close();                response = (HttpWebResponse)request.GetResponse();                response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);                CookieCollection cook = response.Cookies;                string strcoook = request.CookieContainer.GetCookieHeader(request.RequestUri);                Cookiesstr = strcoook;                Console.Write(strcoook);                Console.Write("\n");                for (int i = 0; i < cook.Count; i++)                {                    Console.Write(cook[i]);                    Console.Write("\n");                }                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);                string content = sr.ReadToEnd();                response.Close();                string[] substr = content.Split(new char[] { '"' });                fisrtgethost = substr[1];                Console.Write("content is :\n");                Console.Write(content);            }            catch (System.Exception e)            {                Console.Write("error!");                return false;            }                        return true;        }       static bool FirstGet(string url,string cookies)       {           Console.Write("\n*******************************************************************");           HttpWebRequest request = null;           HttpWebResponse respone = null;           CookieContainer cnter = new CookieContainer();           try           {               request = (HttpWebRequest)WebRequest.Create(url);               request.Method = "GET";               request.KeepAlive = true;               request.ContentType = "text/html";               request.Headers.Add("Cookie:"+cookies);               request.CookieContainer = cnter;               request.AllowAutoRedirect = false;               request.Referer = "http://www.renren.com/SysHome.do";               respone = (HttpWebResponse)request.GetResponse();               string iCookies = request.CookieContainer.GetCookieHeader(request.RequestUri);               Cookiesstr = iCookies;               StreamReader sr = new StreamReader(respone.GetResponseStream(),Encoding.UTF8);               string ss = sr.ReadToEnd();                              Console.Write("\n");               Console.Write(ss);               Console.Write("\n");               Console.Write(iCookies);               request.Abort();               sr.Close();               respone.Close();           }           catch (System.Exception e)           {               Console.Write("\nit is erroring");           }           return true;       }       static bool SecondGet(string url)       {           Console.Write("\n*******************************************************************");           HttpWebRequest request = null;           HttpWebResponse respone = null;           CookieContainer cnter = new CookieContainer();           try           {               request = (HttpWebRequest)WebRequest.Create(url);               request.Method = "GET";               request.KeepAlive = true;               request.ContentType = "text/html";               request.Headers.Add("Cookie:"+Cookiesstr);               request.CookieContainer = cnter;               request.AllowAutoRedirect = false;               request.Referer = "http://www.renren.com/SysHome.do";               respone = (HttpWebResponse)request.GetResponse();               string iCookies = request.CookieContainer.GetCookieHeader(request.RequestUri);               StreamReader sr = new StreamReader(respone.GetResponseStream(), Encoding.UTF8);               string ss = sr.ReadToEnd();               Console.Write("\n");               Console.Write(ss);               Console.Write("\n");               Console.Write(iCookies);               //request.Abort();               sr.Close();               respone.Close();           }           catch (System.Exception e)           {               Console.Write("\nit is erroring");           }           return true;       }    } 



[解决办法]
就是校内网吧?
[解决办法]
報什么錯也不說,要讓我們用猜的嗎?
[解决办法]
关注一下
[解决办法]
这个要好好关注下啊

热点排行