java web QQ(三)

在上述步骤中我们获取到一个ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=763614984&service=ptqrlogin&nodirect=0&ptsigx=e5d147210105f325fba91bf7ba5264f9418d4dfdfc92aebe97a8b5dab8cce5865fe7a4dc031a30a1d6cbe253100acc27ad1635a1723f92be08ac7ca30a&s_url=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2a%3D1%26webqq_type%3D10&f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&j_later=0&low_login_hour=0®master=0&pt_login_type=3&pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0','0','登录成功!', 'Koow');

其中有一个url地址,请求这个地址,如下图所示

java web QQ(三)_第1张图片

在火狐游览器上你也可以看到此请求

java web QQ(三)_第2张图片

对了,在上一步验证二维码是否扫描的时候如果成功,响应的Cookie中会带有ptwebqq参数,如下图最后一个参数所示

java web QQ(三)_第3张图片

保存ptwebqq参数,在请求ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=763614984&service=ptqrlogin&nodirect=0&ptsigx=e5d147210105f325fba91bf7ba5264f9418d4dfdfc92aebe97a8b5dab8cce5865fe7a4dc031a30a1d6cbe253100acc27ad1635a1723f92be08ac7ca30a&s_url=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2a%3D1%26webqq_type%3D10&f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&j_later=0&low_login_hour=0®master=0&pt_login_type=3&pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0','0','登录成功!', 'Koow');

里的url时候,加入到请求Cookie中,

这个url也会响应一些东西,保存Cookie里的p_skey,pt2gguin,p_uin,pt4_token

下一步,获取VFwebqq

java web QQ(三)_第4张图片

如下图所示,注意要携带请求头部Referer,Cookie带上保存好的ptwebqq参数,最后在返回的json中找到vfwebqq并保存

java web QQ(三)_第5张图片

获取uin和psessionid,代码如下图所示

java web QQ(三)_第6张图片

在火狐里看到的是:

java web QQ(三)_第7张图片

请求这个地址,保存响应头部的uin和psessionid,以备后续使用,在这里要注意的是,这一步是post请求,除了携带必须的

Cookie和Referer外,还必须携带Origin,并且传递表单数据ptwebqq为之前保存的参数,另外三个写死不变

java web QQ(三)_第8张图片

在获取到uin和psessionid的时候,其实你已经登陆成功了,但是会在获取消息的时候报103错误,这个错误有两种方法解决

第一种就是每次报这错误时登陆一下官方的web qq,就可以解决,第二种方法比较简洁,如下所示

java web QQ(三)_第9张图片

注意传递的参数,他在火狐中显示如下图

java web QQ(三)_第10张图片


还是注意请求头部的Cookie与Referer,Cookie中携带之前保存的参数 Vfwebqq,Client_ID,Psessionid

做完以上步骤,你的登录就已经完成了



你可能感兴趣的:(javaweb,web,QQ)