说到QQ,预计中国大多的人都领悟,也用过,QQ交友也快速变成一种前卫,一种生活,乃至一种社会情状。扯远了,呵呵。图片 1

说到城市达人,揣摸很多QQ的用户都会知晓,那是腾讯交友平台的一个举止,很多用户的音讯都可以查询到,城市达人的网址如下:http://city.qzone.qq.com/
,里面搜索QQ用户资料算计是一大优点。因为在不仅在其网站上提供查找用户消息的作用,更难难可贵的是提供了给外部访问的接口,由此,应运而生出广大QQ交友的软件,交友辅助软件,都是靠城市达人提供的数据接口。

小编也在这些基础上做了一个QQ资料查询和导出的工具:QQ号码采集及邮件发送系统,QQ号码采集就是利用了都市达人的数目开展规整的。

正文首要介绍怎样利用城市达人的外部访问接口,完毕QQ数据的得到和剖析,分享有关的开发经历,辅助大家探听相关的标题,希望大家创建出更好的QQ应用软件。

上边先看看这几个软件的界面。

图片 2

 撇开邮件发送部分,大家可以看看,QQ的数据可以分页查看,也足以全方位尺度的数量导出,近期城市达人的数目接口是经过URL地址获取的,地址如下格局:

http://city.qzone.qq.com/json.php?mod=search&act=page&city=440300&age=8&sex=3&page=1

中间的city是城市代码(包涵省、城市、地区的代码),age是年纪段,Sex是性别,page是第几页,一般是透过这一个原则来博取的

这几个多少重回的格式是Json格式的多少,不知情我们做.net有没有听说过,这在Java领域不过很已经出来的概念和采纳了。

接纳接口第二回拿走的时候,重返的多少用包涵有这个规范结果的页数、数据等音讯,上面我介绍下回到的数据:

图片 3

 

数据首要分为两片段,一部份是QQ用户资料,如{“uin”:开首的数据,uin就是QQ号码,其他的基于英文就驾驭具体意思了;其余一部份是结果信息,包罗当期页面的页数,计算果的数码和页数等新闻,那些对大家卓殊实用。

要是想选择QQ城市达人接口进行编程,就是分析那几个近似诡异字符了,它们其实是Json的正统格式,解析那个体系有两种方法,一种是按照那个多少的原理,使用字符定位的措施(如正则表达式等)情势开展领取数额,其余一种办法就是明日要讲的行使.NET的零部件,直接将那一个多少转换为实体类,一两行代码搞定,呵呵。

剖析代码如下:

 

List<QQData> entities = (List<QQData>)JavaScriptConvert.DeserializeObject(json, typeof(List<QQData>));

 

 

自己定义的实体类音讯如下:

图片 4图片 5Code
图片 6    public class QQData
图片 7图片 8    图片 9{
图片 10        public int err;
图片 11        public int page;
图片 12        public pagecount property;
图片 13
图片 14        public List<memberdata> data = new List<memberdata>();
图片 15    }
图片 16
图片 17    public class pagecount
图片 18图片 19    图片 20{
图片 21        public string total_count;
图片 22        public int total_page_count;
图片 23    }
图片 24
图片 25    public class memberdata
图片 26图片 27    图片 28{
图片 29        public string uin;
图片 30        public string online;
图片 31        public string birthday;
图片 32        public string nickname;
图片 33        public string smallurl;
图片 34        public string sex;
图片 35        public string yellow;
图片 36        public string job;
图片 37        public string cate;
图片 38        public string state1;
图片 39        public string state2;
图片 40        public string state3;
图片 41        public string city;
图片 42        public string edu;
图片 43        public string intent;
图片 44        public string emotion;
图片 45        public string home;
图片 46        public string bloodType;
图片 47        public string weight;
图片 48        public string height;
图片 49        public int albumID;
图片 50
图片 51        public override string ToString()
图片 52图片 53        图片 54{
图片 55            return string.Format(“uin:{0} nickname:{1}”, uin, UnicodeHelper.UnicodeToString(nickname));
图片 56        }
图片 57    }

 

行使城市达人接口数据几个地点要值得注意:

1)所有的数据是按页再次回到了,一般一页为10个数据,你只要要回来多页,或者每页再次回到多条记下,如本人下边的软件,那就必要分析重回结果,或者循环查找指定的页面结果数据了。

2)查找三个页面的数量是相比较开支时间的,因而最好放置一个独自的线程处理数据,那样可以提升用户体验

3)使用Json.net的连锁组件能够增强处理成效,不用去解析那么些为鬼为蜮的的字符,不过要小心的是,实体类的属性或者字段,必须符合重返结果的名目,大小写要联合,否则出错。

4)城市达人再次回到的华语字符是Unicode字符编码处理过的字符,因而要做相应的解析工作才能正常呈现。

5)城市代码是一个很庞大的数量,里面有省份(包罗另国外家地点)、城市(如利雅得)、地区(如开平市)等内容,这么些可以找城市达人的页面里面的本子得到有关的多少,可是最好的是大家参考我上面说的软件,里面的连锁数据我都收拾好了,我们可以直接采纳。我是按照那么些脚本里面的Json格式那里的,至少开支1天的功夫,很麻烦,希望大家不要走老路。呵呵

期望此文对我们持有帮忙,谢谢帮衬。

 

 上面的软件“QQ号码采集及邮件发送系统”详细介绍地方:http://www.iqidi.com/qqcollector.htm

 软件用到的解析Json的类库是牛顿soft.Json.dll,
大家可以在google里面查询有关的始末介绍,再此提供该压缩文件:http://files.cnblogs.com/wuhuacong/Newtonsoft.Json.rar

 

相关文章

网站地图xml地图