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<string, string> parameters = new Dictionary<string, string>();
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, null, null, 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, 0, string.Empty, CurrentCookie);
Stream data = response.GetResponseStream();
byte[] bData = new byte[4];
data.Read(bData, 0, 4);
sr = new StreamReader(data,Encoding.UTF8);
//登录成功了,呵呵
result = Encoding.UTF8.GetString(bData) + sr.ReadToEnd();
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<string, string> parameters = new Dictionary<string, string>();
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, null, null, 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, 0, string.Empty, CurrentCookie);
Stream data = response.GetResponseStream();
byte[] bData = new byte[4];
data.Read(bData, 0, 4);
sr = new StreamReader(data,Encoding.UTF8);
//登录成功了,呵呵
result = Encoding.UTF8.GetString(bData) + sr.ReadToEnd();
作者:Louja
出处:http://loujady.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此声明,且在文章页面给出原文连接,否则保留追究法律责任的权利。