public synchronized List<Member> getRecentList() {
        try {
            String urlStr = "http://d.web2.qq.com/channel/get_recent_list2";
            String contents = "{\"vfwebqq\":\"" + Auth.getVfwebqq() + "\",\"clientid\":\"" + Auth.getClientid() + "\",\"psessionid\":\"" + Auth.getPsessionid() + "\"}";
            contents = URLEncoder.encode(contents, "UTF-8");
            contents = "r=" + contents;

            httpService = usf.get(urlStr, Method.POST, contents);
            String result = httpService.sendHttpMessage();
            JSONObject retJson = new JSONObject(result);
            JSONArray array = null;
            if (retJson.getInt("retcode") == 0) {
                if (recentList == null) {
                    recentList = new ArrayList<Member>();
                }

                array = retJson.getJSONArray("result");
                for (int i = 0; i < array.length(); i++) {
                    long uin = array.getJSONObject(i).getLong("uin");
                    for (Category c : categoryList) {
                        List<Member> memberList = c.getMemberList();
                        for (Member m : memberList) {
                            if (uin == m.getUin()) {
                                if (!recentList.contains(m)) {
                                    recentList.add(m);
                                }
                            }
                        }
                    }
                }
            }

        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(QQServices.class.getName()).log(Level.SEVERE, null, ex);
        } catch (JSONException ex) {
            Logger.getLogger(QQServices.class.getName()).log(Level.SEVERE, null, ex);
        }
        Log.println("recentList Size:" + recentList);
        return recentList;
    }