コード例 #1
0
        public override void onHttpStatusOK(QQHttpResponse response)
        {
            JSONObject json = new JSONObject(response.getResponseString());

            if (json.getInt("retcode") == 0)
            {
                json = json.getJSONObject("result");
                JSONObject ginfo = json.getJSONObject("ginfo");
                group.setMemo(ginfo.getString("memo"));
                group.setLevel(ginfo.getInt("level"));
                group.setCreateTime(DateTime.FromBinary(ginfo.getInt("createtime")));

                JSONArray members = ginfo.getJSONArray("members");
                for (int i = 0; i < members.length(); i++)
                {
                    JSONObject    memjson = members.getJSONObject(i);
                    QQGroupMember member  = group.getMemberByUin(memjson.getLong("muin"));
                    if (member == null)
                    {
                        member = new QQGroupMember();
                        group.getMembers().Add(member);
                    }
                    member.setUin(memjson.getLong("muin"));
                    member.setGroup(group);
                    //memjson.getLong("mflag"); //TODO ...
                }

                //result/minfo
                JSONArray minfos = json.getJSONArray("minfo");
                for (int i = 0; i < minfos.length(); i++)
                {
                    JSONObject    minfo  = minfos.getJSONObject(i);
                    QQGroupMember member = group.getMemberByUin(minfo.getLong("uin"));
                    member.setNickname(minfo.getString("nick"));
                    member.setProvince(minfo.getString("province"));
                    member.setCountry(minfo.getString("country"));
                    member.setCity(minfo.getString("city"));
                    member.setGender(minfo.getString("gender"));
                }

                //result/stats
                JSONArray stats = json.getJSONArray("stats");
                for (int i = 0; i < stats.length(); i++)
                {
                    // 下面重新设置最新状态
                    JSONObject    stat   = stats.getJSONObject(i);
                    QQGroupMember member = group.getMemberByUin(stat.getLong("uin"));
                    //member.setClientType(QQClientType.valueOfRaw(stat.getInt("client_type")));
                    //member.setStatus(QQStatus.valueOfRaw(stat.getInt("stat")));
                }

                //results/cards
                if (json.has("cards"))
                {
                    JSONArray cards = json.getJSONArray("cards");
                    for (int i = 0; i < cards.length(); i++)
                    {
                        JSONObject    card   = cards.getJSONObject(i);
                        QQGroupMember member = group.getMemberByUin(card.getLong("muin"));
                        if (card != null && card.has("card") && member != null)
                        {
                            member.setCard(card.getString("card"));
                        }
                    }
                }

                //results/vipinfo
                JSONArray vipinfos = json.getJSONArray("vipinfo");
                for (int i = 0; i < vipinfos.length(); i++)
                {
                    JSONObject    vipinfo = vipinfos.getJSONObject(i);
                    QQGroupMember member  = group.getMemberByUin(vipinfo.getLong("u"));
                    member.setVipLevel(vipinfo.getInt("vip_level"));
                    member.setVip(vipinfo.getInt("is_vip") == 1);
                }

                notifyActionEvent(QQActionEvent.Type.EVT_OK, group);
            }
            else
            {
                notifyActionEvent(QQActionEvent.Type.EVT_ERROR, QQWpfApplication1.action.QQException.QQErrorCode.UNEXPECTED_RESPONSE);
            }
        }