实例介绍
【实例截图】
【核心代码】
public QQHelper() { }
private readonly FileHelper file = new FileHelper();
/// <summary>
/// 登录QQ
/// </summary>
/// <param name="username"></param>
/// <param name="userpwd"></param>
/// <param name="groupcode"></param>
public bool Login(HttpContext c, string username, string userpwd, string code, out string Msg, out int Status)
{
Msg = string.Empty;
Status = 0;
string html = string.Empty;
Random rand = new Random();
string path = c.Server.MapPath("~\\file\\cook.txt");
sendCookies = file.ReaderCookies(sendCookies, path);
if (code.Contains("!"))
{// 不需要验证码
List<Cookie> list = file.GetAllCookies(sendCookies);
Referer = Url;
string pt_verifysession_v1 = string.Empty;
foreach (Cookie item in list)
{
if (item.Name == "ptvfsession")
pt_verifysession_v1 = item.Value;
}
//userpwd = GetPassword(username, userpwd, code); //以前的QQ加密方式
Url = string.Format("http://ptlogin2.qq.com/login?u={0}&verifycode={1}&pt_vcode_v1=0&pt_verifysession_v1={2}&p={3}&pt_randsalt=0&ptredirect=1&u1=http%3A%2F%2Fqun.qq.com%2Findex.html&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=1-16-1426730359779&js_ver=10116&js_type=1&login_sig=mOkiOcWZ2k6M2-BLoS8tGut0YbSAJNyfd04Yp8MFccDxzsruKndSPGX8XEjBSnIw&pt_uistyle=20&aid=715030901&daid=73&", username, code, pt_verifysession_v1, userpwd);
html = GetHtmlString(sendCookies, out outCookies);
if (html.Contains("ptuiCB('0',"))
{
file.WriteCookies(outCookies, path);
Status = 0;
Msg = "登录成功!";
return true;
}
else if (html.Contains("ptuiCB('1',"))
{
Status = -1;
Msg = "登录失败,请稍后再试...";
return false;
}
else if (html.Contains("ptuiCB('3',"))
{
Status = -1;
Msg = "登录失败,账号或密码错误...";
return false;
}
else if (html.Contains("ptuiCB('4',"))
{
Status = -1;
Msg = "登录失败,验证码输入错误...";
return false;
}
else if (html.Contains("ptuiCB('7',"))
{
Status = -1;
Msg = "登录失败,参数提交错误...";
return false;
}
else if (html.Contains("ptuiCB('71',"))
{
Status = -1;
Msg = "账号异常,禁止登录...";
return false;
}
}
else
{// 手动输入验证码登录
List<Cookie> list = file.GetAllCookies(sendCookies);
string pt_verifysession_v1 = string.Empty;
foreach (Cookie item in list)
{
if (item.Name == "verifysession")
pt_verifysession_v1 = item.Value;
}
//userpwd = GetPassword(username, userpwd, code); //以前的QQ加密方式
Url = string.Format("http://ptlogin2.qq.com/login?u={0}&p={1}&verifycode={2}&aid=715030901&u1=http%3A%2F%2Fqun.qq.com%2F&h=1&ptredirect=1&ptlang=2052&daid=73&from_ui=1&dumy=&low_login_enable=0®master=&fp=loginerroralert&action=0-10-1407488171734&mibao_css=&t=1&g=1&js_ver=10088&js_type=1&login_sig=SYFM9j-vUxL0oNYAwYU0sQUWOQ94B3WlJppK82Safih3S9VS0qRd0l4oAg73ovAV&pt_uistyle=17&pt_rsa=0&pt_vcode_v1=0&pt_verifysession_v1={3}", username, userpwd, code, pt_verifysession_v1);
html = GetHtmlString(sendCookies, out outCookies);
if (html.Contains("ptuiCB('0',"))
{
file.WriteCookies(outCookies, path);
Status = 0;
Msg = "登录成功...";
return true;
}
else if (html.Contains("ptuiCB('1',"))
{
Status = -1;
Msg = "登录失败,请稍后再试...";
return false;
}
else if (html.Contains("ptuiCB('3',"))
{
Status = -1;
Msg = "登录失败,账号或密码错误...";
return false;
}
else if (html.Contains("ptuiCB('4',"))
{
Status = -1;
Msg = "登录失败,验证码输入错误...";
return false;
}
else if (html.Contains("ptuiCB('7',"))
{
Status = -1;
Msg = "登录失败,参数提交错误...";
return false;
}
else if (html.Contains("ptuiCB('71',"))
{
Status = -1;
Msg = "账号异常,禁止登录...";
return false;
}
}
return false;
}
/// <summary>
/// 获取群内所有成员
/// </summary>
/// <returns></returns>
public List<sys_user> GetAllUsers(HttpContext c, out string Msg, out int Status)
{
Msg = string.Empty;
Status = -1;
string groupcode = c.Request["groupcode"];
List<sys_user> list = new List<sys_user>();
string path = c.Server.MapPath("~\\file\\cook.txt");
sendCookies = file.ReaderCookies(sendCookies, path);
var list1 = file.GetAllCookies(sendCookies);
string gtk = GetGTK(list1).ToString();
Url = "http://qun.qq.com/cgi-bin/qun_mgr/search_group_members";
string val = string.Format("gc={0}&st=0&end=19&sort=0&bkn={1}", groupcode, gtk);
string html = POSTHtmlString(val, sendCookies, out outCookies);
QQEntity entity = GetMemberList(html);// 反序列化JSON字符串为JSON对象
int num = entity.count;
Url = "http://qun.qq.com/cgi-bin/qun_mgr/search_group_members";
val = string.Format("gc={0}&st=0&end={1}&sort=0&bkn={2}", groupcode, num, gtk);
html = POSTHtmlString(val, sendCookies, out outCookies);
entity = GetMemberList(html);// 反序列化JSON字符串为JSON对象
foreach (memsData item in entity.mems)
{
sys_user u = new sys_user();
u.Userrank = GetRankName(entity.levelname, item.lv);
u.Qqage = string.Format("{0}年", item.qage);
u.Qq = item.uin.ToString();
u.Nickname = item.nick.Trim().Replace(" ", "");
u.Jointime = item.join_time;
u.Finalytalktime = item.last_speak_time;
u.Createtime = new SQLHelper().ConvertDateTimeString(DateTime.Now);
u.Groupname = item.card.Trim();
list.Add(u);
}
return list;
}
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论