腾讯微博客户端的设计与实现—本科毕业论文.doc

上传人:yyf 文档编号:3964493 上传时间:2019-10-11 格式:DOC 页数:56 大小:587.52KB
返回 下载 相关 举报
腾讯微博客户端的设计与实现—本科毕业论文.doc_第1页
第1页 / 共56页
腾讯微博客户端的设计与实现—本科毕业论文.doc_第2页
第2页 / 共56页
腾讯微博客户端的设计与实现—本科毕业论文.doc_第3页
第3页 / 共56页
腾讯微博客户端的设计与实现—本科毕业论文.doc_第4页
第4页 / 共56页
腾讯微博客户端的设计与实现—本科毕业论文.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《腾讯微博客户端的设计与实现—本科毕业论文.doc》由会员分享,可在线阅读,更多相关《腾讯微博客户端的设计与实现—本科毕业论文.doc(56页珍藏版)》请在三一文库上搜索。

1、腾讯微博客户端的设计与实现摘要:微博,即微博客(MicroBlog)的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组建个人社区,以140字左右的文字更新信息,并实现即时分享。微博集成了手机短信、博客与社交网站的优点,将消费者从原来单纯的信息接收者变成了接收和发布信息的完全参与者,从而让社会走进了全民记者时代。此客户端是在VS2010平台下利用微软的MFC(微软基础类库)进行开发的,通过调用腾讯微博开放平台提供的API接口,获得腾讯微博用户的相关信息。通过此客户端,用户可以获得自己的信息,发表新微博,查看自己收听用户的微博,并进行评论与收藏。在界

2、面方面,使用的是MFC提供的控件。通过对控件的功能的完善,可以使用户更加方便的使用客户单完成微博的一些基本操作。 关键词:微博,腾讯,MFC,API接口Design and Implementation of Tencent Microblog Client Abstact: Micro blog (MicroBlog), referred to as microblogging, is a relationship based on user information sharing, dissemination and access to the platform, users can se

3、t up individual communities, through the WEB as well as a variety of clients to update the information in about 140 words of text, and to achieveinstant sharing. The microblogging integrates the advantages of mobile phone text messages, blog and social networking sites, consumers from the original s

4、imple information receiver to become a full participant to receive and publish information, so that the society entered the era of universal reporter.This client is developed by using Microsofts MFC (Microsoft Foundation Class Library) in VS2010 platform. By calling Tencent microblogging opening pla

5、tform API interface get Tencent microblogging users information. Through this client, users can access their own information, the new microblogging, check the microblogging of users that they are listening and reviews and collection. At the interface, using MFC controls. Perfect control function all

6、ows users to more easily use the customer a single to complete some of the basic operation of microblogging.Keywords: MicroBlog , Tencent , MFC , API interface.目录一、绪论11.1引言11.2微博的定义与特点11.2.1微博的定义11.2.2微博的特点21.3国内外研究发展综述21.3.1国外发展综述21.3.2国内发展综述3二、系统开发环境简介52.1系统开发软件环境52.1.1 Visualstudio.NET2010简介52.1.

7、2 腾讯微博开放平台52.2系统开发硬件环境6三、软件需求分析与总体设计73.1系统需求分析73.1.1 功能需求73.1.2 稳定性需求73.1.3 其它需求73.2 微博客户端设计概要83.3 微博客户端认证机制83.3.1 腾讯微博 API OAuth认证介绍83.3.2 OAuth认证机制介绍83.3.3 OAUTH认证机制的运行过程93.4 微博客户端信息抓取流程103.4.1 CWeiboParam参数类及微博相关参数简介113.4.2 信息传递函数SyncRequest()简介113.5 对返回值的解析123.5.1 Json格式简介123.5.2 腾讯微博API对Json格式的

8、解析143.5.3 XML格式简介153.5.4 腾讯微博API对XML格式的解析163.6 字符串格式的转换163.6.1 Unicode字符集与多字节字符集的区别163.6.2 char*、string和CString的转换17四、软件详细设计与实现184.1 相关变量的定义184.2 相关图片的获取和显示194.3 用户登录的设计与实现204.4 用户信息模块的设计与实现214.5 微博相关操作模块的设计与实现234.6 微博发布和评论模块的设计与实现25五、开发总结26致谢27参考文献28郑州大学信息工程学院软件学院2008级毕业设计一、绪论1.1引言 微博,即微博客(MicroBlo

9、g)的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组建个人社区,以140字左右的文字更新信息,并实现即时分享。近3年来,互联网上4种主要的社交媒体(SocialMedia)微博、社交网站、视频分享网站和开放式百科全书从根本上改变了人类的生活。人类正以前所未有的速度和广度传递信息,以计算机为媒介的沟通成为人们互动沟通的重要方式。在这4种媒体中,微博后来居上。国外最早提供微博服务的网站是美国的Twitter,从2006年10月开通至2011年1月在全球已拥有近2亿注册用户,年增长率约1500%,每日访问量约30亿国内的新浪微博和腾讯微博均在开通不到

10、一年半的时间内突破1亿用户。微博集成了手机短信、博客与社交网站的优点,将消费者从原来单纯的信息接收者变成了接收和发布信息的完全参与者,从而让社会走进了全民记者时代。2010年我国最大的50起网络舆情案例中约1/4是微博发起的,微博已成为企业和网民互动沟通的新平台。1.2微博的定义与特点1.2.1微博的定义 国内知名新媒体领域研究学者陈永东在国内率先给出了微博的定义:微博是一种通过关注机制分享简短实时信息的广播式的社交网络平台。其中有五方面的理解:(1) 关注机制:可单向可双向(2) 简短容:通常为140字(3) 实时信息:最新实时信息(4) 广播式:公开的信息,谁都可以浏览(5) 社交网络平台

11、:把微博归为社交网络1.2.2微博的特点 微博客草根性更强,且广泛分布在桌面、浏览器、移动终端等多个平台上,有多种商业模式并存,或形成多个垂直细分领域的可能,但无论哪种商业模式,都离不开用户体验的特性和基本功能。 (1) 信息获取具有很强的自主性、选择性,用户可以根据自己的兴趣偏好,依据对方发布内容的类别与质量,来选择是否“关注”某用户,并可以对所有“关注”的用户群进行分类;(2) 微博宣传的影响力具有很大弹性,与内容质量高度相关。其影响力基于用户现有的被“关注”的数量。用户发布信息的吸引力、新闻性越强,对该用户感兴趣、关注该用户的人数也越多,影响力越大。此外,微博平台本身的认证及推荐亦助于增

12、加被“关注”的数量;(3) 内容短小精悍。微博的内容限定为140字左右,内容简短,不需长篇大论,门槛较低;(4) 信息共享便捷迅速。可以通过各种连接网络的平台,在任何时间、任何地点即时发布信息,其信息发布速度超过传统纸媒及网络媒体。1.3国内外研究发展综述1.3.1国外发展综述2006年3月,博客技术先驱blogger创始人埃文威廉姆斯(EvanWilliams)创建的新兴公司Obvious推出了大微博服务。在最初阶段,这项服务只是用于向好友的手机发送文本信息。Twitter是2006年3月由blogger的创始人威廉姆斯(EvanWilliams)推出的,英文原意为小鸟的叽叽喳喳声,用户能用

13、如发手机短信的数百种工具更新信息。Twitter的出现把世人的眼光引入了一个叫微博的小小世界里。Twitter是一个社交网络及微博客服务。用户可以经由SMS、即时通信、电邮、Twitter网站或Twitter客户端软件(如Twitterrific)输入最多140字的文字更新,Twitter被Alexa网页流量统计评定为最受欢迎的50个网络应用之一。在2007年5月,国际间计算总共有111个类似Twitter的网站。然而,最值得注意的仍是Twitter,它于2007年在得克萨斯州奥斯汀举办的南非西南会议赢得了部落格类的网站奖。Twitter的主要竞争对手是Plurk和Jaiku。后来微博客的新服

14、务特色持续诞生,例如Plurk有时间轴可以观看整合了视讯和照片的分享,Identi、Pownce整合了微薄客加上档案分享和事件邀请,由Digg的创始人KevinRose和另外三位开发者共同发展。1.3.2国内发展综述 从2007年中国第一家带有微博色彩的饭否网开张,到2009年,微博这个全新的名词,以摧枯拉朽的姿态扫荡世界,打败奥巴马、甲流等等名词,成为全世界最流行的词汇。伴随而来的,是一场微博世界人气的争夺战,大批量的名人图1-1 新浪微博被各大网站招揽,各路名人也以微博为平台,在网络世界里聚集人气,同样,新的传播工具也造就了无数的草根英雄,从默默无闻到新的话语传播者,往往只在一夜之间、寥寥

15、数语。2009年7月中旬开始,国内大批老牌微博产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像开放的叽歪,6月份开放的Follow5,7月份开放的9911,8月份开放的新浪微博,其中Follow5在2009年7月19日孙楠大连演唱会上的亮相,是国内第一次将微博引入大型演艺活动,与twitter当年的发展颇有几分神似。2010年国内微博迎来来春天,微博像雨后春笋般崛起。四大门户网站均开设微博。根据相关公开数据,截至2010年1月份,该产品在全球已经拥有7500万注册用户。中国互联网络信息中心(CNNIC)今日发布第28次中国互联网络发展状况统计报告,报告显示,2011年上半年,

16、中国微博用户从6331万增至1.95亿,增长约2倍。该报告指出,中国互联网的普及率增至36.2%,较2010年增加1.9%。2011年上半年,我国微博用户数量从6331万增至1.95亿,半年增幅高达208.9%。微博在网民中的普及率从13.8%增至40.2%。从2010年底至今,手机微博在网民中的使用率比例从15.5%上升到34%。图1-2腾讯微博至今,新浪微博用户数超过1亿,得益于抢占了先机,而且在整体的战略执行上也比较彻底到位,所以获得了现在的地位。仅仅两年时间,新浪微博就为新浪生下了一个价值几十亿美金的金蛋。而另一个微博巨头:腾讯微博,也呈现出发展迅猛的姿态,腾讯拥有近5亿的QQ注册用户

17、,2亿左右的活跃用户。这部分人群很容易受潮流趋势的影响,开通腾讯微博。通过腾讯微博能够与QQ好友和腾讯微博上的其他用户行行信息的分享。另外其作为重要的推广渠道。企业用户通过注册腾讯官方微博,得到认证后,能够迅速的扩大企业的知名度。个人用户通过腾讯微博,也能再微博平台进行个人的推广。目前,很多的社会事件揭露都来自于微博平台。高校教育平台也随之建立,如腾讯微博校园上的高校新闻哥微博体系的发展,推动了中国教育事业信息化发展的步伐。二、系统开发环境简介2.1系统开发软件环境2.1.1 Visualstudio.NET2010简介Visual Studio是微软公司出品的一款大型应用软件,从最初的Vis

18、ualStudio97开始就成为编程的重要工具。VisualStudio.NET是一套完整的开发工具,用于生成ASP Web应用程序、XML Web services、桌面应用程序和移动应用程序。VisualBasic.NET、Visual C+.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成开发环境(IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework的功能,此框架提供对简化ASP Web应用程序和XML Web services开发的关键技术的访问。Visual Studio 2010版本于2010年4

19、月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 201O同时带来了NETFramework4.0,MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview-CTP)并且支持开发面向Windows7的应用程序。除了Microsoft SQLServer,它还支持IBM DB2和Oracle数据库。Visual Studio 2010的新增功能集中在以下几个方面: (1) 支持 Windows Azure,微软云计算架构迈入重要里程碑。 (2) 助力移动与嵌入式装置开发,三屏一云商机无

20、限。 (3) 实践当前最热门的 Agile/Scrum 开发方法,强化团队竞争力。 (4) 升级的软件测试功能及工具,为软件质量严格把关。 (5) 搭配 Windows 7,Silverlight 4 与 Office,发挥多核并行运算威力,创建美感与效能并重的新一代软件。 (6) 支持最新C+标准,增强IDE,切实提高程序员开发效率。2.1.2 腾讯微博开放平台 腾讯微博开放平台,是基于腾讯微博系统,为广大开发者和用户提供的开放数据分享与传播平台。广大开发者和用户登录平台后,就可以使用平台提供的开 放API接口,创建应用从微博系统获取信息,或将新的信息传播到整个微博系统中,丰富多样的API接

21、口和应用,加上你的智慧,将创造出无穷的应用和乐趣! (1) 平台介绍 在微博开放平台能获取到的资源及优势 (2) 应用开发说明 说明如何成为一个开发者并创建应用 (3) 应用审核流程 审核应用的来源字段能获得的好处,以及如何审核 (4) 开发者协议 在此查看腾讯微博开放平台开发者服务协议2.2系统开发硬件环境硬件配置如下:操作系统: Windows 7操作系统CPU: Intel(R)Core(TM)Duo CPU T6600 2.20GHz内存: 5GB显卡: NVIDIA Geforce GT 130M三、软件需求分析与总体设计3.1系统需求分析3.1.1 功能需求 微博作为现在人们生活中

22、必不可少的工具,通过微博这个媒介,发布身边的新鲜事,并且能对某一热门话题进行评论,必要的时候还可收藏自己喜欢的文字。可以说文博极大地丰富了我们的生活。所以说,一个微博客户端系统,一定要包含如下的基本功能,来发挥微博的作用: (1) 用户登录自己的账户并查看自己的个人信息。 通过OAUTH认证方式,用户可以在不告知客户端自己的账号和密码的情况下,安全的通过客户端登陆腾讯微博,并且获取自己的相关信息。 (2) 用户查看自己的新微博,获取好友的最新动态。 用户可以查看自己关注对象的微博,并能够通过随时刷新获得最新的微博动态。并且,用户不仅能看到微博的文字内容,还能看到微博的相关配图。 (3) 用户发

23、表新微博,告诉好友自己身边的新鲜事。 用户可以发表新的微博,随时更新自己的状态。 (4) 用户对好友的微博进行评论,并且对自己喜爱的微博进行收藏。 用户可以对看到的微博进行评论,发表自己的意见,当用户看到感兴趣的微博时,还收藏此微博。3.1.2 稳定性需求 (1) 客户端能够长时间的正确运行,如果客户端出错,客户端会有相应的出错信息,能够使用户明白在哪里出错了,该怎么办。 (2) 减少无用的代码,减少因此带来的错误,并使客户端能够尽可能快的对数据进行处理3.1.3 其它需求 (1) 为保证客户端的正常运行,应保证计算机能够一直连接互联网以获取信息。 (2) 使用图形化界面,可使用鼠标或键盘作为

24、标准输入设备。3.2 微博客户端设计概要 微博客户端运行主要分为两个阶段,第一阶段:认证阶段,第二阶段:信息获取阶段。用户首先通过客户端打开的腾讯微博授权界面获得授权码,然后将获得授权码交付给客户端从而完成认证阶段。客户端通过获得认证码作为用户授权的依据,从而通过腾讯微博提供的API获得用户相关的微博信息。授权页面用户认证 输入账户相关信息阶段返回授权码 腾讯微博服务器客户端信息 通过授权信息获取 阶段 返回用户微博的相关信息图3-1客户端运行流程 3.3 微博客户端认证机制3.3.1 腾讯微博 API OAuth认证介绍腾讯微博开放平台,是基于腾讯微博系统,为广大开发者和用户提供的开放数据分

25、享与传播平台。 广大开发者和用户登录平台后,就可以使用平台提供的开放API接口,创建应用从微博系统获取信息,或将新的信息传播到整个微博系统中,丰富多样的API接口和应用,加上您的智慧,将创造出无穷的应用和乐趣。 腾讯微博API采用OAuth协议为第三方提供接入服务,遵循RFC-5849规范。有关OAuth认证的详细说明,请阅读官方OAuth规范。各种语言的OAuth 客户端可以在Google-OAuth项目里找到。 腾讯微博API使用OAuth 1.0a版本。 3.3.2 OAuth认证机制介绍 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OA

26、UTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。

27、OAUTH认证具有以下特点: (1) 简单:不管是OAUTH服务提供者还是应用开发者,都很容易于理解与使用。 (2) 安全:没有涉及到用户密钥等信息,更安全更灵活。 (3) 开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH。3.3.3 OAUTH认证机制的运行过程 (1) 使用者(第三方软件)向OAUTH服务提供商请求未授权的Request Token。向Request Token URL发起请求,请求需要带上的参数见上图。 (2) OAUTH服务提供商同意使用者的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返

28、回给使用者。 (3) 使用者向OAUTH服务提供商请求用户授权的Request Token。向User Authorization URL发起请求,请求带上上步拿到的未授权的token与其密钥。 (4) OAUTH服务提供商将引导用户授权。该过程可能会提示用户,你想将哪些受保护的资源授权给该应用。此步可能会返回授权的Request Token也可能不返回。如Yahoo OAUTH就不会返回任何信息给使用者。 (5) Request Token 授权后,使用者将向Access Token URL发起请求,将上步授权的Request Token换取成Access Token。请求的参数见上图,这个

29、比第一步A多了一个参数就是Request Token。 (6) OAUTH服务提供商同意使用者的请求,并向其颁发Access Token与对应的密钥,并返回给使用者。 (7) 使用者以后就可以使用上步返回的Access Token访问用户授权的资源。 从上面的步骤可以看出,用户始终没有将其用户名与密码等信息提供给使用者(第三方软件),从而更安全。用OAUTH实现背景一节中的典型案例:当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAUTH机制,服务B向服务A请求未经用户授权的Request Token后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用

30、户同意后,服务B就可以访问用户在服务A上的图片服务。整个过程服务B没有有触及到用户在服务A的帐号信息。图3-2腾讯微博OAUTH授权认证过程3.4 微博客户端信息抓取流程 腾讯微博的信息抓取是利用腾讯公司提供的API接口,添加上相应的参数,把信息传递给腾讯公司服务器,腾讯公司再把所要求的信息传递给本地,从而完成微博的信息传递过程。腾讯微博服务器含有授权信息及请求信息的相关参数:oParam 请求函数SyncRequest() 信息返回给客户端图3-3 SyncRequest()函数3.4.1 CWeiboParam参数类及微博相关参数简介 在每次向腾讯微博服务器请求用户数据时,都要都要将用户想

31、要进行的操作以参数的形式传递给腾讯微博服务器,然后腾讯服务器将用户请求返回给客户端。在腾讯公司提供的API中,参数类型是CWeiboParam类,通过该类提供的函数AddParam(const char* pKey, const char* pValue),将参数名和参数值传递到其类对象中。并且该类还提供Clear()函数,用来清除该类对象里的所有参数,以方便此类对象可以重复利用。 由于腾讯微博API采用的是OAUTH签权认证方式,所以客户端在每次请求用户数据时,都要将用户登录时留下的Tokenkey,Tokensecret授权信息及开发者的身份信息Appkey,Appsecret传递进去,以

32、获得获取用户信息的权限。 除此之外,客户端还要将用户进行相应操作所需要的相关信息添加到该参数类中。例如,若用户想要获取一条微博数据,就要将该微博的身份标示ID已经想要服务器返回的信息格式format传到CWeiboParam参数类对象中CWeiboParam& oParam; /定义类对象oParam.AddParam(Appkey, strAppkey.c_str();oParam.AddParam(Appsecret, strAppsecret.c_str();oParam.AddParam(Tokenkey,strTokenkey.c_str();oParam.AddParam(Toke

33、nsecret,strTokensecret.c_str(); /传递授权信息oParams.AddParam(format,json);oParams.AddParam(id,Wbid);/传递将要获取的微博相关信息3.4.2 信息传递函数SyncRequest()简介 SyncRequest()函数是腾讯微博API函数核心,通过这个函数,客户端将用户将要进行的操作,以及此操作需要的相关参数传递给腾讯微博服务器,并且把从服务器传递回来的相关数据存储到某一参数中。SyncRequest()函数的定义如下:SyncRequest(const char* pReqUrl, EHttpMethod

34、eHttpMethod, CWeiboParam oQWBlogParam, char* &pResultData,int &nLen);下面就来对此函数中的参数进行说明: (1) 其中pReqUrl参数的传递内容是一个URL链接,该URL链接对应的含义就是用户想要进行的操作,通过这个URL链接,客户端就会告诉腾讯微博服务器用户想要进行什么样的操作。例如URLhttp:/ (2) SyncRequest()函数中第二个参数eHttpMethod是一个枚举类型的参数其定义如下:enum EHttpMethodEHttpMethod_Get,EHttpMethod_Post,;其中EHttpMet

35、hod_Get代表的是获取信息,是要告诉服务器此次操作是想从服务器中获取相关的信息,比如说获取微博,用户信息等;而EHttpMethod_Post代表的是向服务器推送信息,告诉服务器我这里有信息需要让服务器更新,比如说用户发新微博,对某一微博进行评论等,都需要用此参数。 (4) oQWBlogParam就是CWeiboParam参数类对象,用来传递与URL相对应的操作所需要的参数信息。 (5) pResultData和nLen的作用是存储从服务器返回的信息,以方便将来对信息进行解析。 (6) SyncRequest()的返回值是一个枚举类型的变量,通过SyncRequest()函数的返回值,可

36、以知道客户端的请求是否成功,或者如果失败了,是是失败在什么地方。例如:若返回值为HTTPRESULT_OK,表明返回成功,若返HTTPRESULT_ERROR,则表明HTTP请求的数据错误导致客户端操作失败。 以上就是SyncRequest()函数的所有参数的含义,通过此函数并添加上相应的参数,客户端就能从腾讯服务器中获取或推送消息,从而完成微博客户端最核心的内容。3.5 对返回值的解析 当客户端使用SyncRequest()函数从腾讯服务器请求数据后,服务器会返回给客户端一个字符串,这个字符串会根据我们请求数据时填写的参数类型返回不同格式的字符串,主要分为两种,Json格式和XML格式,通过

37、对这两种格式的解析,我们就能获得我们想要的相关数据。3.5.1 Json格式简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C+, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。JSON建构有两种结构: (1) “名称

38、/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。 (2) 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。例如:name:中国,province:name:黑龙江,cities:city:哈尔滨,大庆,name:广东,cities:city:广州,深圳,珠海,

39、其中name和”中国”就是对应的名称和键值,而province是一个数组结构,它的里面包含了几组类型相似的结构,如上例的name:”黑龙江”和name:”广东”就是两个相似结构结构里代表相同涵义的对象。3.5.2 腾讯微博API对Json格式的解析 在腾讯提供的API中使用JsonParser类对返回的字符串进行Json格式的解析,一般情况下分为以下三步: (1) 通过JsonParser类提供的Parse函数,将返回的字符串转换成Json字符串,例如:JsonParser theGwParser;/定义JsonParser 类对象theGwParser.Parse(strGwResult.c

40、_str();/完成字符串的转换这样就把返回值strGwResult转换成了Json字符串格式。 (2) 通过JsonParser类提供的GetChild(const char* pName)函数,获得第一步中得到的Json字符串的子节点,如果需要获得的内容是该子节点中的子节点,则可以继续使用GetChild(const char* pName)函数以后的自己需要的关键字;如果获得的子节点中是数组格式,则可以使用GetChild(const char* pName)函数的重载函数GetChild(const int nIndex)获得相应的数组序列内容,再使用GetChild(const ch

41、ar* pName)函数获得数组内容中关键字。GetChild()函数的返回值依旧是JsonParser类型的字符串。例如:若Json字符串里面不含数组:JsonParser name = theGwParser.GetChild(name);/找到关键字name若Json字符串里面含数组:JsonParser info = theGwParser.GetChild(0);/定位到响应的数组序号JsonParser name = info.GetChild(name);/找到关键字nameJsonParser id = info.GetChild(id);/找到关键字ID (3) 当我们找到想

42、要的关键字之后,我们需要使用JsonParser类提供GetString()函数获得该关键字的值,GetString()函数的返回值为char* 类型的;如果关键字的值的类型是int类型的,则我们需要使用GetInt()函数,获得该关键字的值例如:char* Myname = name.GetString();/将name的值赋值给Mynameint ids = id.GetInt() ;/将id的值赋值给ids 通过以上三个步骤,我们就能够从服务器返回的字符串中获得我们想要的相关信息,从而信息呈献给观众。3.5.3 XML格式简介 可扩展标记语言 (Extensible Markup Lan

43、guage, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。它有如下几个特点: (1) 简单: XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是存储数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点

44、使XML与众不同。 (2) 结合: XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows,Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。(3) 友好: 为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己

45、的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。例如: 中国 黑龙江 哈尔滨 大庆 其中和是一对标签,分别是起始标签和结束标签。XML规定某些起始标签可以选择性出现结束标签或者隐含了结束标签而另一些则必须要包含结束标签。3.5.4 腾讯微博API对XML格式的解析 在腾讯微博提供的API中,XML解析的方法与Json格式解析的方法是一模一样的,先利用提供的Parse()函数将返回的字符串转换为XML格式,然后使用GetChild()函数获得相应的子标签,最后再用GetString()函数将标签的值提取出来,从而完成对XML格式的解析。3.6 字符串格式的转换 前面通过使用GetSt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1