某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx

上传人:夺命阿水 文档编号:1026695 上传时间:2024-03-01 格式:DOCX 页数:36 大小:218.80KB
返回 下载 相关 举报
某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx_第1页
第1页 / 共36页
某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx_第2页
第2页 / 共36页
某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx_第3页
第3页 / 共36页
某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx_第4页
第4页 / 共36页
某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx》由会员分享,可在线阅读,更多相关《某科技微博客户端的设计与实现毕业设计说明书(含源程序).docx(36页珍藏版)》请在课桌文档上搜索。

1、某科技微博客户端的设计与实现毕业设计说明书(含源程序)题目:腾讯微博客户端的设计与实现专业:计算机科学与技术(软件工程)院(系):信息工程学院完成时间:2012年05月15日毕业设计(论文)任务书附表一题目来源:探索学习课题名称腾讯微博客户端的设计与实现设计人姓名指导教师姓名、职称专业计算机科学与技术(软件工程)指导时间/地点班级一、设计(论文)内容这次设计的要紧内容是开发一个腾讯微博的PC客户端,通过使用腾讯微博开放平台提供的API函数与开发文档,在VS2010平台下使用MFC具有图形界面的客户端,其要紧功能有,通过用户的授权认证,获得用户的有关信息,用户发表新的微博,获得用户的有关微博,并

2、对此微博进行评论,与收藏等。二、设计(论文)的要紧技术指标1、能够正确的通过腾讯微博的认证,正确地获取用户的信息。2、能够正确显示微博信息,不出现错字与乱码。3、不仅要获取微博,还能获取微博配备的有关图片。三、进度安排1、熟悉编程语言VS2010的编程平台;2、熟悉腾讯微博APl的有关用法;3、编写软件全面设计报告;4、实施开发过程;5、调试软件。四、毕业设计(论文)提交的文档及基本要求1 .毕业论文一份(包含封皮、目录、中英文摘要、内容及参考文献)2 .很多于5000汉字的科技翻译资料一份3、毕业论文简介(A4纸12页)(包含题目、专业、年级、姓名、指导教师、毕业论文所做的工作、解决的问题、

3、创新之处等)4 .毕业设计任务书5 .开题报告6 .毕业设计工作中期检查表毕业设计(论文)开题报告附表二课题名称腾讯微博客户端的设计与实现学生姓名学号专业班级一、选题的目的意义二、国内外进展综述三、毕业设计(论文)所用的方法系统设计基于C/S架构利用Microsoft的VS2010开发工具,开发出带有图形界面的客户端软件,其中利用腾讯微博提供的API,将微博中的内容抓取到本地客户端,然后将内容显示出来。四、要紧参考文献与资料获得情况VC+深入详解(电子工业出版社)五、指导教师审批意见签字:年月0毕业设计工作中期检查I附表三2012年4月2日课题名称腾讯微博客户端的设计与实现姓名专业与班级指导教

4、师一、毕业设于具体内容及E(1)通过(2)熟悉(3)利用可能遇到的(1)对腾(2)对V(卜具体内容、目标与可能遇到的问题W标:腾讯微博开放平台提供的APT完成对用户登录的认证。腾讯微博提供的API,熟悉微博的基本开发过程。微博API完成对用户有关信息的抓取。弓题:讯微博APl有关概念的懂得与有关开发的技术的掌握。:+有关控件的使用二、采取的研究方法、技术路线、实验方案及可行性分析研究方法及技术路线:(1)查阅腾讯微博开放平台提供的帮助文档。(2)通过OAUTH认证的有关文章,懂得此认证的原理方法。可行性分析:尽管微博在国内十分流行,但都是基于网页版的,客户端软件基本没有,而客户端与网页相比,有

5、速度快与界面友好的优势,因此开发一个优秀的客户端具有十分重要的意义。三、指导教师对学生出勤、文献阅读等方面的评语签字:年月日毕业设计工作中期检查Il附表四2012年5月3日课题名称腾讯微博客户端的设计与实现姓名专业与班级计算机科学与技术(软件工程)08级4班指导教师一、阶段性结果实现了客户端获取用户的授权,登陆到用户的账号,获取用户的有关信息。完成了对用户微博信息的抓取,用户能够利用客户端发表新的微博,对微博进行评论、收藏。二、存在的问题受限于VC+提供的控件,无法提供较好的用户体验。微博信息显示方式的改变导致变量的冗余,浪费内存。三、后一步工作设想进一步加强客户端的各个功能,完善各个功能模块

6、。对代码进行优化,减少无用的变量,完善用户界面,使客户端操作更加简单便利。四、指导教师对学生出勤、论文进展方面的评语签字:年月日腾讯微博客户端的设计与实现此客户端是在VS2010平台下利用微软的MFC(微软基础类库)进行开发的,通过调用腾讯微博开放平台提供的APl接口,获得腾讯微博用户的有关信息。通过此客户端,用户能够获得自己的信息,发表新微博,查看自己收听用户的微博,并进行评论与收藏。在界面方面,使用的是MFC提供的控件。通过对控件的功能的完善,能够使用户更加方便的使用客户单完成微博的一些基本操作。关键词:微博,腾讯,MFC,APl接口DesignandImpIementationofTen

7、centMicrobIogCIientAbstact:Microblog(MicroBlog),referredtoasmicroblogging,isarelationshipbasedonuserinformationsharing,disseminationandaccesstotheplatform,userscansetupindividualcommunities,throughtheWEBaswellasavarietyofclientstoupdatetheinformationinabout140wordsoftext,andtoachieveinstantsharing.T

8、hemicrobloggingintegratestheadvantagesofmobilephonetextmessages,blogandsocialnetworkingsites,consumersfromtheoriginalsimpleinformationreceivertobecomeafullparticipanttoreceiveandpublishinformation,sothatthesocietyenteredtheeraofuniversalreporter.ThisclientisdevelopedbyusingMicrosoftsMFC(MicrosoftFou

9、ndationClassLibrary)inVS2010platform.BycallingTencentmicrobloggingopeningplatformAPIinterfacegetTencentmicrobloggingusersinformation.Throughthisclient,userscanaccesstheirowninformation,thenewmicroblogging,checkthemicrobloggingofusersthattheyarelisteningandreviewsandcollection.Attheinterface,usingMFC

10、controls.Perfectcontrolfunctionallowsuserstomoreeasilyusethecustomerasingletocompletesomeofthebasicoperationofmicroblogging.Keywords:MicroBIog,Tencent,MFC,APIinterface.目录一、绪论11引言11.2微博的定义与特点11.2. 1微博的定义11.3. 2微博的特点11.4. 内外研究进展综述21. 3.1国外进展综述21.3. 2国内进展综述2二、系统开发环境简介32.1 系统开发软件环境32. 1.1Visualstudio.NE

11、T2010简介33. 1.2腾讯微博开放平台42. 2系统开发硬件环境4三、软件需求分析与总体设计53.1系统需求分析53. 1.1功能需求53. 1.2稳固性需求53. 1.3其它需求63.2 微博客户端设计概要63.3 微博客户端认证机制63.3.1腾讯微博APIOAuth认证介绍63.3.2OAuth认证机制介绍73.3.3OAUTH认证机制的运行过程73.4微博客户端信息抓取流程83.4.1CWCibOParam参数类及微博有关参数简介93.4.2信息传递函数SynCRCqUeSt()简介93.5对返回值的解析103.5.1Json格式简介103.5.2腾讯微博APl对JSOn格式的解

12、析113.5.3XML格式简介123.5.4腾讯微博APl对XML格式的解析123.6字符串格式的转换121.1 6.1UniCOde字符集与多字节字符集的区别131.2 6.2Char*、String与CString的转换13四、软件全面设计与实现141.3 1有关变量的定义144.2 有关图片的获取与显示154.3 用户登录的设计与实现164.4 用户信息模块的设计与实现174.5 微博有关操作模块的设计与实现204.6 微博公布与评论模块的设计与实现21五、开发总结224.7 234.8 献24一、绪论1.1 引言1.2 微博的定义与特点1.2.1 微博的定义关注机制:可单向可双向(2)

13、简短容:通常为140字(3)实时信息:最新实时信息(4)广播式:公开的信息,谁都能够浏览(5)社交网络平台:把微博归为社交网络1.2.2微博的特点(1)信息获取具有很强的自主性、选择性,用户能够根据自己的兴趣偏好,根据对方公布内容的类别与质量,来选择是否“关注某用户,并能够对所有关注的用户群进行分类;(2)微博宣传的影响力具有很大弹性,与内容质量高度有关。其影响力基于用户现有的被“关注的数量。用户公布信息的吸引力、新闻性越强,对该用户感兴趣、关注该用户的人数也越多,影响力越大。此外,微博平台本身的认证及推荐亦助于增加被“关注的数量;(3)内容短小精悍。微博的内容限定为140字左右,内容简短,不

14、需长篇大论,门槛较低;(4)信息共享便利迅速。能够通过各类连接网络的平台,在任何时间、任何地点即时公布信息,其信息公布速度超过传统纸媒及网络媒体。1.3国内外研究进展综述1.3.1 国外进展综述13.2国内进展综述图1-1新浪微博铲膻讯微博MHlWl33MzP*CtrIfl图1-2腾讯微博至今,新浪微博用户数超过1亿,得益于抢占了先机,而且在整体的战略执行上也比较完全到位,因此获得了现在的地位。仅仅两年时间,新浪微博就为新浪生下了一个价值几十亿美金的,金蛋而另一个微博巨头:腾讯微博,也呈现出进展迅猛的姿态,腾讯拥有近5亿的QQ注册用户,2亿左右的活跃用户。这部分人群很容易受潮流趋势的影响,开通

15、腾讯微博。通过腾讯微博能够与QQ好友与腾讯微博上的其他用户行行信息的分享。另外其作为重要的推广渠道。企业用户通过注册腾讯官方微博,得到认证后,能够迅速的扩大企业的知名度。个人用户通过腾讯微博,也能再微博平台进行个人的推广。目前,很多的社会事件揭露都来自于微博平台。高校教育平台也随之建立,如腾讯微博校园上的高校新闻哥微博体系的进展,推动了中国教育事业信息化进展的步伐。二、系统开发环境简介2.1系统开发软件环境2.1.1ViSUalStUdiO.NET2010简介(1)支持WindowsAzure,微软云计算架构迈入重要里程碑。(2)助力移动与嵌入式装置开发,三屏一云商机无限。(3)实践当前最热门

16、的Agile/Scrum开发方法,强化团队竞争力。(4)升级的软件测试功能及工具,为软件质量严格把关。(5)搭配Windows7,Silverlight4与Office,发挥多核并行运算威力,创建美感与效能并重的新一代软件。(6)支持最新C+标准,增强IDE,切实提高程序员开发效率。2.1.2腾讯微博开放平台腾讯微博开放平台,是基于腾讯微博系统,为广大开发者与用户提供的开放数据分享与传播平台。广大开发者与用户登录平台后,就能够使用平台提供的开放APl接口,创建应用从微博系统获取信息,或者将新的信息传播到整个微博系统中,丰富多样的APl接口与应用,加上你的智慧,将制造出无穷的应用与乐趣!(1)平

17、台介绍一在微博开放平台能获取到的资源及优势(2)应用开发说明一说明如何成为一个开发者并创建应用(3)应用审核流程一审核应用的来源字段能获得的好处,与如何审核开发者协议一在此查看腾讯微博开放平台开发者服务协议2.2系统开发硬件环境硬件配置如下:操作系统:CPU:内存:显卡:Windows7操作系统Intel(R)Core(TM)DuoCPUT66002.20GHz5GBNVIDIAGeforceGT130M三、软件需求分析与总体设计3.1 系统需求分析3.1.1 功能需求微博作为现在人们生活中必不可少的工具,通过微博这个媒介,公布身边的新鲜事,同时能对某一热门话题进行评论,必要的时候还可收藏自己

18、喜欢的文字。能够说文博极大地丰富了我们的生活。因此说,一个微博客户端系统,一定要包含如下的基本功能,来发挥微博的作用:(1)用户登录自己的账户并查看自己的个人信息。通过OAUTH认证方式,用户能够在不告知客户端自己的账号与密码的情况下,安全的通过客户端登陆腾讯微博,同时获取自己的有关信息。(2)用户查看自己的新微博,获取好友的最新动态。用户能够查看自己关注对象的微博,并能够通过随时刷新获得最新的微博动态。同时,用户不仅能看到微博的文字内容,还能看到微博的有关配图。(3)用户发表新微博,告诉好友自己身边的新鲜事。用户能够发表新的微博,随时更新自己的状态。(4)用户对好友的微博进行评论,同时对自己

19、喜爱的微博进行收藏。用户能够对看到的微博进行评论,发表自己的意见,当用户看到感兴趣的微博时,还收藏此微博。3.1.2稳固性需求(1)客户端能够长时间的正确运行,假如客户端出错,客户端会有相应的出错信息,能够使用户明白在哪里出错了,该怎么办。(2)减少无用的代码,减少因此带来的错误,并使客户端能够尽可能快的对数据进行处理3.1.3其它需求(1)为保证客户端的正常运行,应保证计算机能够一直连接互联网以获取信息。(2)使用图形化界面,可使用鼠标或者键盘作为标准输入设备。3.2微博客户端设计概要微博客户端运行要紧分为两个阶段,第一阶段:认证阶段,第二阶段:信息获取阶段。用户首先通过客户端打开的腾讯微博

20、授权界面获得授权码,然后将获得授权码交付给客户端从而完成认证阶段。客户端通过获得认证码作为用户授权的根据,从而通过腾讯微博提供的APl获得用户有关的微博信息。认证阶段信息 获取 阶段图3-1客户端运行流程3.3微博客户端认证机制3.3.1腾讯微博APlOAUth认证介绍腾讯微博开放平台,是基于腾讯微博系统,为广大开发者与用户提供的开放数据分享与传播平台。广大开发者与用户登录平台后,就能够使用平台提供的开放APl接口,创建应用从微博系统获取信息,或者将新的信息传播到整个微博系统中,丰富多样的APl接口与应用,加上您的智慧,将制造出无穷的应用与乐趣。腾讯微博API使用OAuth协议为第三方提供接入

21、服务,遵循RFC-5849规范。有关OAUth认证的全面说明,请阅读官方OAUth规范。各类语言的OAUth客户端能够在GOOgIe-OAUth项目里找到。腾讯微博APl使用OAuthLOa版本。本设计有全套完f 说明书,答辩PPT口括源程序、数据库,:1415736481获取!也可代做其它题目的毕业设计3. 3.2OAuth认证机制介绍OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不一致之处是OAUTH的授权不可能使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就能够申请获得该用户资源的授权,因此OAUTH是安全的。同时

22、,任何第三方都能够使用OAUTH认证服务,任何服务提供商都能够实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,RUby等各类语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如OPenAPL很多大公司如GOogIe,Yahoo,MiCrOSoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐步成为开放资源授权的标准。OAUTH认证具有下列特点:(1)简单:不管是OAUTH服务提供者还是应用开发者,都很容易于懂得与使用。(2)安全:没有涉及到用户密钥等信息,更安全更灵活。(3)

23、开放:任何服务提供商都能够实现OAUTH,任何软件开发商都能够使用OAUTHo3. 3.3OAUTH认证机制的运行过程(2) OAUTH服务提供商同意使用者的请求,并向其颁发未经用户授权的OaUth_token与对应的oauth_token_secret,并返回给使用者。使用者向OAUTH服务提供商请求用户授权的RequestTOken。向USerAuthorizationURL发起请求,请求带上上步拿到的未授权的token与其密钥。(4) OAUTH服务提供商将引导用户授权。该过程可能会提示用户,你想将什么受保护的资源授权给该应用。此步可能会返回授权的ReqUeStToken也可能不返回。如

24、YahoOOAUTH就不可能返回任何信息给使用者。(5) RequestToken授权后,使用者将向ACeeSSTokenURL发起请求,将上步授权的RequestToken换取成AccessToken请求的参数见上图,这个比第一步A多了一个参数就是ReqUeStTokeno(6) OAUTH服务提供商同意使用者的请求,并向其颁发ACCeSSToken与对应的密钥,并返回给使用者。使用者以后就能够使用上步返回的ACCeSSTOken访问用户授权的资源。从上面的步骤能够看出,用户始终没有将其用户名与密码等信息提供给使用者(第三方软件),从而更安全。用OAIJTH实现背景一节中的典型案例:当服务B

25、(打印服务)要访问用户的服务A(图片服务)时,通过OAUTH机制,服务B向服务A请求未经用户授权的RequestToken后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用户同意后,服务B就能够访问用户在服务A上的图片服务。整个过程服务B没有有触及到用户在服务A的帐号信息。管CAUTH授权认证流程H平台诋回值超用户相关6.返向ACCeSS Token 及 Access Token Secret5.用已授权的Resquest Token 换取 Access Token4 .返回己授权的ReqUeSt Toker 和Verifier (蚯证码)Liir末走授权的Re

26、sqUest Token5 .返回采搜权的Resquest Token 及ReSqUeSt Token Secret6 .跳花至微历平台授权页面. 浜求用户授权O 3.请求用户Ie校+授权后接口漉用流程传的接口参数,OAUm权限参数.(stfflAccessToken,ACCeSSTokenSecret访问用户信息.图3-2腾讯微博OAUTH授权认证过程3.4微博客户端信息抓取流程腾讯微博的信息抓取是利用腾讯公司提供的APl接口,添加上相应的参数,把信息传递给腾讯公司服务器,腾讯公司再把所要求的信息传递给本地,从而完成微博的信息传递过程。本设计有全套完f 说明书,答辩PPT资料:包括源程序、数

27、据库,Bqq:1415736481获取!也可代做其它题目的毕业设计图 3-3 SynCReqUeSt ()函数3.4.1CWeibOPaQm参数类及微博有关参数简介在每次向腾讯微博服务器请求用户数据时,都要都要将用户想要进行的操作以参数的形式传递给腾讯微博服务器,然后腾讯服务器将用户请求返回给客户端。在腾讯公司提供的APl中,参数类型是CWeibOParam类,通过该类提供的函数AddParam(constchar*pKeyzconstchar*pValue),将参数名与参数值传递到其类对象中。同时该类还提供CIear()函数,用来清除该类对象里的所有参数,以方便此类对象能够重复利用。由于腾讯

28、微博APl使用的是OAUTH签权认证方式,因此客户端在每次请求用户数据时,都要将用户登录时留下的TOkenkey,TOkenSeCret授权信息及开发者的身份信息APPkey,APPSeCret传递进去,以获得获取用户信息的权限。除此之外,客户端还要将用户进行相应操作所需要的有关信息添加到该参数类中。比如,若用户想要获取一条微博数据,就要将该微博的身份标示ID已经想要服务器返回的信息格式format传到CWeiboParam参数类对象中CWeiboParam&oParam;定义类对象oParam.AddParam(,AppkeyzstrAppkey.c_str();oParam.AddPara

29、m(AppsecretzstrAppsecret.c_str();oParam.AddParam(,TokenkeyzstrTokenkey.c-str();oParam.AddParam(Tokensecret,strTokensecret.c_str();传递授权信息oParams.AddParam(formatzjson);oParams.AddParam(idzWbid);传递将要获取的微博有关信息3.4.2信息传递函数SyncRequest()简介SyncRequestO函数是腾讯微博API函数核心,通过这个函数,客户端将用户将要进行的操作,与此操作需要的有关参数传递给腾讯微博服务器

30、,同时把从服务器传递回来的有关数据存储到某一参数中。SyncRequestO函数的定义如下:下面就来对此函数中的参数进行说明:();OQWBIOgParam就是CWeiboParam参数类对象,用来传递与URL相对应的操作所需要的参数信息。(5)PReSUItData与nLen的作用是存储从服务器返回的信息,以方便将来对信息进行解析。以上就是SynCReqUeSt()函数的所有参数的含义,通过此函数并添加上相应的参数,客户端就能从腾讯服务器中获取或者推送消息,从而完成微博客户端最核心的内容。3.5对返回值的解析当客户端使用SynCReqUeSt()函数从腾讯服务器请求数据后,服务器会返回给客户

31、端一个字符串,这个字符串会根据我们请求数据时填写的参数类型返回不一致格式的字符串,要紧分为两种,JSOn格式与XML格式,通过对这两种格式的解析,我们就能获得我们想要的有关数据。3.5.1Json格式简介JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON使用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包含C,C+,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交

32、换语言。易于人阅读与编写,同时也易于机器解析与生成。JSON建构有两种结构:“名称/值对的集合(AeolleCtionOfname/valuepairs)。不一致的语言中,它被懂得为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者者关联数组(associativearray)。(2)值的有序列表(Anorderedlistofvalues)o在大部分语言中,它被懂得为数组(array)o比如:name:“中国”,province:(name:黑龙江,cities:city:哈尔滨,

33、“大庆”,(name:广东,cities:city:”广州,丁深圳,,珠海”,)其中name与中国就是对应的名称与键值,而province是一个数组结构,它的里面包含了几组类型相似的结构,如上例的name:黑龙江”与name:广东就是两个相似结构结构里代表相同涵义的对象。3.5.2腾讯微博API对Json格式的解析在腾讯提供的APl中使用JSonParSer类对返回的字符串进行JSOn格式的解析,通常情况下分为下列三步:(1)通过JSOnParSer类提供的ParSe函数,将返回的字符串转换成JSOn字符串,比如:JSonParSertheGWParser;定义JSonParSer类对象the

34、GwParser.Parse(strGwResult.c_str();完成字符串的转换这样就把返回值StrGWReSUIt转换成了JSOn字符串格式。(2)通过JSOnParSer类提供的GetChild(COnStchar*PName)函数,获得第一步中得到的JSon字符串的子节点,假如需要获得的内容是该子节点中的子节点,则能够继续使用GetChild(COnStchar*PName)函数以后的自己需要的关键字;假如获得的子节点中是数组格式,则能够使用GetChild(COnStchar*PName)函数的重载函数GetChild(COnStintnlndex)获得相应的数组序列内容,再使用

35、GetChiId(constchar*PName)函数获得数组内容中关键字。GetChiId()函数的返回值依旧是JSonParSer类型的字符串。比如:若JSOn字符串里面不含数组:JsonParsername=theGwParser.GetChild(name);/找至关键字name若JSon字符串里面含数组:JsonParserinfo=theGwParser.GetChild(O);定位到响应的数组序号JsonParsername=info.GetChild(name);找至IJ关键字nameJsonParserid=info.GetChild(id);找到关键字ID当我们找到想要的关

36、键字之后,我们需要使用JSOnParSer类提供GetString()函数获得该关键字的值,GetString()函数的返回值为Char*类型的;假如关键字的值的类型是int类型的,则我们需要使用GetInt()函数,获得该关键字的值比如:char*Myname=name.GetString();将name的值赋值给Mynameintids=id.GetInt();将id的值赋值给ids通过以上三个步骤,我们就能够从服务器返回的字符串中获得我们想要的有关信息,从而信息呈献给观众。3.5.3XML格式简介3. 5.4腾讯微博API对XML格式的解析在腾讯微博提供的APl中,XML解析的方法与JS

37、on格式解析的方法是一模一样的,先利用提供的ParSe()函数将返回的字符串转换为XML格式,然后使用GetChild()函数获得相应的子标签,最后再用GetString()函数将标签的值提取出来,从而完成对XML格式的解析。3.6字符串格式的转换前面通过使用GetStringO函数得到Json格式或者XML格式关键字的值,但是通常情况得到的此值是不能直接使用的,由于在VS2010中默认使用的是UniCOde字符集,而腾讯微博服务器返回的值为多字节字符集,因此直接存在一个转换的问题;另外在VS2010中,字符串的处理通常使用CString格式进行字符串的处理,而在处理将多字节字符集转换为Uni

38、COde字符集的过程中,函数的参数及返回值多为Cha*类型或者者String类型,因此中间又牵涉到一个Char*,string与CString三种类型的转换问题。1. 6.1UniCOde字符集与多字节字符集的区别多字节字符集(multi-bytecharactersetorMBCS),是指在编码中,一个字符由后者多个字符共同表示在Windows里的MBCS包含两种字符类型:单字节字符(SinglebyteCharaCterS)与双字节字符(doublebytecharacters)o由于Windows里使用的多字节字符绝大部分是两个字节长,MBCS常被DBCS代替。Unicode是一种所有的

39、字符都使用两个字节编码的编码模式。Unicode字符有的时候也被称作宽字符。UniCode与MBCS的区别是:MBCS字符能够使用不一致长度的字节编码,而Unicode只能使用两字节进行编码。比如BOb这个单词在系统中存储的形式:Unicode的存储形式:|4200|6F00|6200|0000|B|0|b|BOS|MBCS的存储形式:|42|6F|62|00|B|0|b|BOS|从上图中就能够能够清晰地看出MBCS格式与Unicode存储形式的区别,因此在不一致编码格式字符串中,假如不进行转换,则在字符串的处理过程中势必会造成乱码等错误。在腾讯微博提供的APl中,MBCS与Unicode的转

40、换是通过Utf8ToMbcs()函数进行的.3. 6.2char*vstring与CString的转换string与CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C+标准之中而Char*为C编程中最常用的字符串指针,通常以0,为结束标志。它们三者之间的转换方法如下:(1) string与CStringstring转CString:CString.format(%s”,string.c-str();CString转string:strings(CString.GetBuffer();(2) char*与CStringchar*转CString:CStr

41、ing.format(,%swzchar*);CString转char*:char*p=CString.GetBuffer(CString.GetLength();(3) char*与stringChar转String:strings(char*);string转char*:char*p=string.c_str();四、软件全面设计与实现4. 1有关变量的定义在程序中,由于要频繁的使用用户的有关信息,且不只要在一个才类里面使用,因此,为了方便使用,把用户的有关信息,包含姓名,昵称,粉丝数,广播数等等定义为一个全局结构体,这样就能够方便的在各个类里进行调用了。定义如下:typedefstruc

42、tinfoCStringinfName;用户名称CStringinfNick;用户昵称CStringinfHead;用户头像的网络地址CStringinfHeadPath;用户头像的本地地址CStringinfId;用户IDCStringinfFansnum;用户粉丝数CStringinfldolnum;用户收听数CStringinfTweetnum;用户广播数!information;externinformationMylnf;同样的,关于某一条微博的有关信息,也需要在不一致的几个类里使用,因此,把一条微博的有关信息也定义为一个全局的结构体变量,定义如下:typedefstructWBIn

43、f(CStrmgWBid;微博的IDCStringWB;微博的内容CStrmgWBPiCUr1;微博配图的网路地址CStringWBPiCPath;微博配图的本地地址JMyWbInf;externMyWbInfWbListInf;4.1 有关图片的获取与显示在一个微博客户端中,不仅要能显示用户的头像图片,而且还有很多微博是配备了图片,因此图片的显示也是微博客户端的一个重要功能。用户图像的获取与微博的图片获取方式相似。在客户端获得获取用户的有关信息后,对服务器的返回值进行JSoN类型的解析,其中包含有“head”关键字,此关键字的值就是用户头像在网络上UH地址,在这里,我们通过URLDOWnIO

44、adTOFile()函数,将用户的头像从网络上的Url地址下载下来,实现代码如下:URLDownloadToFile(0,Mylnf.infHeadzLcA120.bmp,0,NULL);其中MyInfJnfHead中存储的用户头像的网络地址,c:120.bmp”是图像的存储位置。微博配图的获取用户头像的获取方式基本相似,只只是微博配图网络地址是通过解析获取微博命令的返回值而得到的,同样的使用URLDoWnIoadToFiIeO函数将其下载下来。由于在mfc中的控件只能加载BMP格式的图片,因此使用URLDownIoadToFiIeO函数时,将图片类型储存为了bmp格式。在客户端显示图片的方面

45、,我们使用的MFC提供的PiCtUreeontrol控件,通过获取该控件的显示区域,将图片显示在正确的位置。实现代码如下:CRectrect;m_staticBitMap.GetClientRect(&rect);获取相应控件的显示区域Clmageimage;image.Load(Mylnf.infHeadPath);加载要显示的图片路径CDC*pDC=m_staticBitMap.GetWindowDCO;image.Draw(pDC-m-hDC,rect);图片在控件上显示ReleaseDC(pDC);return0;效果图如下:林佳良粉丝:29图4T用户头像的显示图4-2微博配图的显示4

46、.2 用户登录的设计与实现用户在登陆客户端的时候,先点击客户端上的授权链接到腾讯授权服务页面上输入自己的用户名与密码,将得到的授权码输入到客户端中就可完成登陆操作。假如用户输入的授权码得不到腾讯服务器的认证,则用户的登陆就失败,程序就无法再向下进行。登陆界面如下:授忸J百图4-3登陆界面用户点击“点击从腾讯微博登陆”链接后,客户端会与腾讯服务器通讯完成OAUTH认证的第一与第二步,当用户输入从授权页面获得授权码之后,客户端会完成授权认证的第三部,获得TOkenKey与TOkenSCCrcct,从而获得获取用户信息的权限。点击“点击从腾讯微博登陆”后的事件响应如下:voidCLOgInDIg=OnNMClickSysIinkMNMHDR*pNMHDR,LRESULT*pResult)intirettoken=0;irettoken=GetRequestTokens(pstrAppKey,pstrAppSecretzStrReqkeyzStrReqSeCret);完成授权认证第一

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号