俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

第三讲 smart qq 登录成功后获取 vfwebqq ,psessionid,hash俄罗斯贵宾会

发送 poll包

俄罗斯贵宾会 1

public static void Login_PostPoll()
{
try
{
string url = "http://d1.web2.qq.com/channel/poll2";
string dat = "{"ptwebqq":"#{ptwebqq}","clientid":53999199,"psessionid":"#{psessionid}","key":""}";
dat = dat.Replace("#{ptwebqq}", Login_ptwebqq).Replace("#{psessionid}", Login_Psessionid);
dat = "r=" + HttpUtility.UrlEncode(dat);
HTTP.Post_Async_Action action = Message_Get;
HTTP.Post_Async(url, dat, action);
}
catch (Exception) { Login_PostPoll(); }
}
#endregion
#region 接收到消息的回调函数
/// <summary>
/// 接收到消息的回调函数
/// </summary>
俄罗斯贵宾会,/// <param name="data">接收到的数据(json)</param>
private static bool Running = true;
public static void Message_Get(string data)
{
Task.Run(() => Login_PostPoll());
if (Running)
Task.Run(() => Message_Process(data));//这个是处理收到信息的另外一个方法具体处理 在源码
}

 

以上就是poll包的处理以及 收到的信息处理

public static void Login_GetPHV()
{
string urldata = "{"ptwebqq":"#{ptwebqq}","clientid":53999199,"psessionid":"","status":"online"}".Replace("#{ptwebqq}", Login_ptwebqq);
urldata = "r=" + HttpUtility.UrlEncode(urldata);
string dat = HTTP.Post("http://d1.web2.qq.com/channel/login2", urldata, "http://d1.web2.qq.com/proxy.html?v=20151105001&callback=1&id=2");

接下来是 发送的 

Login_Psessionid = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[10];
Login_QQ = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[14];//登录QQ
//Login_Vfwebqq = dat.Replace(":", ",").Replace("{", "").Replace("}", "").Replace(""", "").Split(',')[18];
Login_Hash = Hash2(Login_QQ, Login_ptwebqq);// http://web2.qq.com/js/mq.js?t=20161220 在这个js 拿到那个hash的值 JS里面的方法名是Hash2 里面是16进制 需要转换成C#的类型。第一个参数是真实QQ第二个ptwebqq
//一开始拿上面的cookie 里面的Vfwebqq,是不行的,再请求一遍,拿到获取好友信息的vfwebqq
string urlvfwebqq = "http://s.web2.qq.com/api/getvfwebqq?ptwebqq=#{ptwebqq}&clientid=53999199&psessionid=&t=#{t}".Replace("#{ptwebqq}", Login_ptwebqq).Replace("#{t}", TimeStamp());
string datVfwebqq = HTTP.Get(urlvfwebqq, "http://s.web2.qq.com/proxy.html?v=20130916001&callback=1&id=1");
Login_Vfwebqq = datVfwebqq.Split('"')[7];
SendOnlog(Login_QQ +"/r/n"+ Login_Vfwebqq + "/r/n" + Login_Psessionid

俄罗斯贵宾会 2

  • "/r/n" + Login_Hash);
    }

 

上面就可以拿到 Login_ptwebqq  Login_Psessionid ,Login_Hash 这个hash  需要

 上面是发送的连接以及 发送后返回的 poll包信息。代码如下 

http://web2.qq.com/js/mq.js?t=20161220 在这个js 拿到那个hash的值 JS里面的方法名是Hash2 里面是16进制 需要转换成C# 也可以直接  调用这个JS。第一个参数是Login_QQ 第二个Login_ptwebqq  

本文由俄罗斯贵宾会发布于编程,转载请注明出处:第三讲 smart qq 登录成功后获取 vfwebqq ,psessionid,hash俄罗斯贵宾会

您可能还会对下面的文章感兴趣: