-
分析部分
- 代码实现部分
- 更具上面的分析,我们首先需要实现数据模型(好友和分组信息)
public class QQGroupMemberInfo{public string QQ{get;
set;
}
public string NickName{get;
set;
}
}
/// <summary>/// QQ好友/// </summary>public class QQFriendMember : QQGroupMemberInfo{public int FriendGroupId { get; set; }}
/// <summary>/// 好友分组/// </summary>public class QQFiendGroup{public string Name { get; set; }public int GroupId { get; set; }public int SortId { get; set; }}
/// <summary>/// 好友信息返回模型/// </summary>public class QQFriendInfo{public QQFriendInfo(){GroupInfos = new List<QQFiendGroup>();QQFriends = new List<QQFriendMember>();}
public List<QQFiendGroup> GroupInfos { get; set; }public List<QQFriendMember> QQFriends { get; set; }}
- 提交GET请求,获取数据
string friendUrl = string.Format("http://r.cnc.qzone.qq.com/cgi-bin/tfriend/friend_mngfrd_get.cgi?uin={0}", _cleintKeyInfo.ClientUin);string jsonF = GetWebData<string>(friendUrl); - 使用Javascript运行时解析数据
StringBuilder script = new StringBuilder();script.AppendLine("function _Callback(o){return o; };");script.AppendLine(jsonF);
var data = JavaScriptEngine.Run(script.ToString()) as Dictionary<string, object>;- 获取解析数据
var gpnames = data["gpnames"] as object[];//组信息var items = data["items"] as object[];//好友信息//遍历组foreach (var g in gpnames){var gitem = (g as Dictionary<string, object>);qfi.GroupInfos.Add(new QQFiendGroup(){GroupId = int.Parse(gitem["gpid"].ToString()),Name = gitem["gpname"].ToString(),SortId = int.Parse(gitem["sortid"].ToString())});
}
//遍历成员foreach (var f in items){var fitem = (f as Dictionary<string, object>);qfi.QQFriends.Add(new QQFriendMember(){FriendGroupId = int.Parse(fitem["groupid"].ToString()),NickName = fitem["name"].ToString(),QQ = fitem["uin"].ToString()});
}
- 更具上面的分析,我们首先需要实现数据模型(好友和分组信息)
- 总结
- 其实QQ的数据是比较好获取的,只是登陆比较困难而已,关于登陆部分实现,我blog前面的一些文章已经实现过了,这里不再罗嗦
- 对于HTTP协议的数据分析,主要使用HTTP协议分析工具来解析,再结合浏览器的控制台来分析
转载请注明:http://www.cnblogs.com/Rolends





浙公网安备 33010602011771号