使用curl 和 libjson 完成联网和数据解析

    项目就要作到联网了, 选择了用curl库来完成联网部分,网上看了下curl使用,要是简单的联下网,测测数据什么的,仍是挺简单的,但要用到游戏里面,那就有必要进一步的封装了。html

    因为C++这块还不是很熟悉,要完成这个工做估计要点时间。node

    ------------------------------------------------------------------------------android

    由于以前的项目还有点工做要作,因此耽误了点时间。c++

    新项目要解决联网和数据解析的问题了,目前决定用curl来解决联网,传送的数据用json,客户端用libjson来完成数据解析。json

    首先来解决联网的问题,cocos2dx自带了curl库,使用起来很方便。在win32上直接把头文件curl.h引进来就能够了(注意路径),在android下用还要在android.mk文件把curl库添加进来,具体能够参考tests例子。数组

    接下来怎么用curl来链接后台?curl

    具体能够看看这个连接:http://blog.csdn.net/jgood/article/details/4787670,(中文的)post

    还有就是 curl自带文档:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html (英文的)url

    因为我也是刚刚开始用curl,不少用法都不是很熟悉,只是简单的使用了get和post两种方法和后台交互。.net

    折腾了几个钟,终于顺利的从后台拿到了数据,只是从win32移植到android的时候,遇到的问题,第一个就是添加curl 库时,刚才是不知道怎么添加,后来才想起tests里面有用到curl,因而就把方法照搬过来. 可是仍是拿不到数据,还要把android联网的权限打开。到此android上也能顺利拿到数据了。

    联网解决了,下面就是数据解析了。

    先是在网上查找和cocos2dx  c++  json有关的资料,能够看看这个连接:http://blog.csdn.net/onerain88/article/details/7595563,而后实际操做了,先把libjson库解压,把源文件libjson.h.JSONOptions.h 和文件夹Source拷贝到cocos2dx的工程的Class目录下,在JSONOptions.h有些宏须要注意。一个就是: #define JSON_LIBRARY 这个规定libjson用的是c语言,把它注释了就变成用C++了,具体就看我的喜欢了。还有其余一些宏声明是debug版的仍是nodebug的,具体仍是看看源文件吧。按照libjson教程成功把json字符串解析了出来,其中解析json数组时废了点时间,要用到遍历每一个数组元素,而后存到一个c++的数组里面。到此win32下联网和数据解析均可以了。当把libjson移植到android时,也遇到的点问题。首先是编译问题,用NDK编译libjson时,须要把C++的异常捕获打开,在android.mk文件加上LOCAL_CPPFLAGS += -fexceptions这句,就这个问题纠结了一段时间。

    好,如今win32和android下都能联网和解析数据了。

    ps: 写这个主要是记录一下。

相关文章
相关标签/搜索