利用HTTP登录QQ群流程

/**
  * QQ群登录流程
  * 1. 登录表单页是一个iframe,直接取得iframe地址即可
  *    http://ui.ptlogin2.qq.com/cgi-bin/login?appid=3000801&s_url=http%3A%2F%2Fqun.qq.com%2Fair%2F&f_url=loginerroralert&lang=2052&bgcolor=ffffff&style=1&low_login=1&link_target=blank&target=top&hide_title_bar=1&dummy=1
  * 2. 登录页需要两个JS文件
  *    http://imgcache.qq.com/ptlogin/js/comm.js
  *    http://imgcache.qq.com/ptlogin/js/str_cn.js
  *    及以下JS代码:
  *   


   
  *   

  * 3. 在登录时,js方法的调用链如下:
  *    1) ptui_onLogin(loginform) (由于没有parent,直接进catch段)
  *    2) ptui_checkValidate(A)
  *    3) preprocess(B) (这个方法用验证码和密码作了一个md5作为发送的密码)
  *   

    function preprocess(A)
    {
    var B="";
    B+=A.verifycode.value;
    B=B.toUpperCase();
    A.p.value=md5(md5_3(A.p.value)+B);
    return true
    }
  *   

  * 4. 登录后,有一个跳转(这个url为群首页的url)
  *    top.location.href='http://qun.qq.com/air/';
  * 5. 取群首页后,发现里面没有群数据
  *    用FireBug在Firefox下查看HTML,发现
  *   

  *    ...... 群信息
  *   

  *    但是查看源代码时:为空
  *   

  *    原因是:在加载这个界面后,利用jQuery发送了ajax请求来加载数据,页面中有这样的代码:
  *   

   
  *   

  *    利用HttpWatch跟踪后,得到群的JSON数据地址为:
  *    http://qun.qq.com/air/group/mine?w=a&_=0.4386851283768331
  *    可以取到群的基本信息,如果再取好友,需要到通讯录页
  * 6. 取好友
  *    url形式为:http://qun.qq.com/air/2447222/addr/index/type/1/p/1?w=n&_=0.4386851283768331;
  *    其中2447222为群号,addr/index/type/1/p/1中最后一个数字1为页号
  *    因此要取所有好友必须访问所有的分页url(递归过程)
  *    http://qun.qq.com/air/2447222/addr/index/type/1/p/1
  *    http://qun.qq.com/air/2447222/addr/index/type/1/p/2
  *    http://qun.qq.com/air/2447222/addr/index/type/1/p/3
  *    http://qun.qq.com/air/2447222/addr/index/type/1/p/4 等等
  *    步骤:
  *    (1)取第一页取出好友
  *    (2)取第一页的所有分页链接(注意去重)
  *    (3)访问其他页链接并取出好友(如果其他页链接已访问过了,不再访问)
  */

你可能感兴趣的:(Java相关,协议,网络,qq,login,module,url,jquery,iframe)