代码改变世界

HttpWebRequest实战(阿里巴巴登录)

2011-03-30 14:06  LoujaDy  阅读(1070)  评论(1编辑  收藏  举报
            string loginUrl = "https://login.alibaba.com/xman/xlogin.js";      
            
string pd = "alibaba";
            
string u_token = "";
            
string dmtrack_pageid = Guid.NewGuid().ToString();
            
string xloginPassport = HttpUtility.UrlEncode(txtUserName.Text);
            
string xloginPassword = "";

            Base64Class b
=new  Base64Class();
            
sbyte[] sbyteData =b.md5(txtPassword.Text);
            
string s = b.converttobase64(sbyteData);
            
string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(s, "MD5").ToLower(); 
            pwd 
= FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5").ToLower();
            pwd 
= FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5").ToLower();
            pwd 
= FormsAuthentication.HashPasswordForStoringInConfigFile(pwd, "MD5").ToLower();

            xloginPassword 
= pwd;


            IDictionary
<stringstring> parameters = new Dictionary<stringstring>();
            parameters.Add(
"pd", pd);
            parameters.Add(
"u_token", u_token);
            parameters.Add(
"xloginPassport", xloginPassport);
            parameters.Add(
"xloginPassword", xloginPassword);
            parameters.Add(
"dmtrack_pageid", dmtrack_pageid);


            //Post登录页
            HttpWebResponse response 
= HttpHelper.HttpPostResponse(loginUrl, parameters, nullnull, Encoding.GetEncoding("gb2312"),"");
           


            StreamReader sr 
= new StreamReader(response.GetResponseStream());
           

            
string result= sr.ReadToEnd();
           

            sr.Close();

            
if (result.Contains("xlogin_failed"))
            {
                MessageBox.Show(
"密码错误!");
                
if (result.Contains("yes"))
                {
                    MessageBox.Show(
"需要图片验证码");
                }
                
return;
            }
            
//获取登录页cookie
            CurrentCookie= response.Headers["Set-Cookie"];           

            
//获取登录代理页URL
            string proxyUrl = result.Substring(result.IndexOf("https://login.alibaba.com"), result.IndexOf("],"- 1-result.IndexOf("https://login.alibaba.com"));
             
//请求代理页
            response = HttpHelper.HttpGetResponse(proxyUrl, 0string.Empty, CurrentCookie);

            Stream data 
= response.GetResponseStream();
            
byte[] bData = new byte[4];
            data.Read(bData, 
04);            
            sr 
= new StreamReader(data,Encoding.UTF8);
            
//登录成功了,呵呵
            result = Encoding.UTF8.GetString(bData) + sr.ReadToEnd();

作者:Louja
出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。