webqq协议分析之~~~~登陆

最近好几个新项目积一起了,比较忙,所以博客迟迟未更新,还请各位见谅!下面来继续分析webqq协议,本章将说明如何实现登陆

 

1:输入QQ号和密码登陆,检测HTTP请求url如下,这是第一次登陆

https://ssl.ptlogin2.qq.com/login?u={0}&p={1}&verifycode={2}&webqq_type=10&remember_uin=1&login2qq=1&aid=501004106&u1=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&h=1&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=0-28-696051&mibao_css=m_webqq&t=1&g=1&js_type=0&js_ver=10095&login_sig=a9NQ-9*PnzKFxzP7jcE7voRx5Z9x6Khffy44FKhIkaD-n8fShtaK1r1GZRjgsxzA&pt_randsalt=0&pt_vcode_v1=0&pt_verifysession_v1={3}

需要传递4个参数

u      ---qq号

p      ---加密后的密码

verifycode   ---验证码

verifysession_v1   ---获取验证码时取到的verifysession

2:提交请求,记得保存cookie,登陆成功之后返回结果如下

ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=2358922602&service=login&nodirect=0&ptsigx=55ddde2b4b297168034309d52aff1a679bd60595863b77f2ab13fa9ff5a688631e6b177d54aef1e886bac0954f5fac07597f81b5d287bdeb3ab06acd2e2dbfd4&s_url=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&j_later=0&low_login_hour=0&regmaster=0&pt_login_type=1&pt_aid=0&pt_aaid=0&pt_light=0','0','登录成功!', 'Zero');

 说明:第一个 0  状态码,0表示登陆成功

   第二个0   不知道干啥用,反正后面我没用到

        http://.....    3之后请求的url

   0      无用

   登陆成功    提示信息

   Zero    昵称

3:获取QQ令牌ptwebqq

4:请求2 中的url,记得保存cookie

5:进行第二次登陆,提交POST请求,记得保存cookie

url:http://d.web2.qq.com/channel/login2

referer:http://d.web2.qq.com/proxy.html?v=20130916001&callback=1&id=2

post数据:r={{"ptwebqq":"1fcc5dc887871eacc0c74632f2397550b306ca28479fa8950d967b893d32c31a","clientid":53999199,"psessionid":"","status":"online"}}

说明:ptwebqq    前面获取的qq令牌

   clientid  客户端id,基本不变

   pessionid   这一步为空,后面会获取

        status   登陆状态

POST返回结果如下

说明:retcode    状态码,0表示成功

   result       结果对象集合

                  uin    qq号

         cip    类似临时码,不用管

        index   不知道干嘛的,不用管

        port   不用管

        status  状态  online:在线  callme:Q我吧   silent:请勿打扰

        vfwebqq     qq令牌,再次保存

        psessionid    需要保存的,后面用到

        user_state  状态

        f      不用管

 

ok,到此登陆搞定了,但是你会发现你的qq无法持续在线,这就涉及心跳包的发送了,敬请等待下一篇文章,谢谢!

 

程序员技术交流群程序员技术交流群    欢迎您的加入

你可能感兴趣的:(Web)