cocos2dx获取网络时间(二):浅析CCHttpClient
来源:未知 责任编辑:责任编辑 发表时间:2015-03-01 01:33 点击:次
新建一个c++类 ,命名为NetTime,继承自CCNode并重写init()方法。然后引入CCHttpClient和rapidjson需要的头文件。我们的需求是可以返回NetTime的年,月,日,小时,分和秒,分别定义它们的private字段和public方法:
p>
p>
p>
p> 1 #ifndef __NETTIME_H__
p> 2 #define __NETTIME_H__
p> 3 #include "cocos2d.h"
p> 4 #include "cocos-ext.h"
p> 5 #include "CocoStudio\Json\rapidjson\rapidjson.h"
p> 6 using namespace cocos2d;
p> 7 using namespace extension;
p> 8 using namespace rapidjson;
p> 9
p>10 class NetTime:public CCNode
p>11 {
p>12 public:
p>13 CREATE_FUNC(NetTime);
p>14 int getYear(){
p>15 return _year;
p>16 };
p>17 int getMonth(){
p>18 return _month;
p>19 };
p>20 int getDay(){
p>21 return _day;
p>22 };
p>23 int getHour(){
p>24 return _hour;
p>25 };
p>26 int getMinute(){
p>27 return _minute;
p>28 };
p>29 int getSecond(){
p>30 return _second;
p>31 };
p>32 void getNetTime();
p>33 void requestNetTime();
p>34 private:
p>35 virtual bool init();
p>36 int _year, _month, _day, _hour, _minute, _second;
p>37 void onHttpComplete(CCHttpClient * sender, CCHttpResponse * response);
p>38 void readJson(std::string jsonStr);
p>39 };
p>40 #endif
p>
p> 我们还需要一个requestNetTime方法来发起http请求,并在回调方法里面实现数据的获取和解析,直接把前面的代码拷贝过来即可:
p>
p>
p>
p> 1 #include "NetTime.h"
p> 2
p> 3 bool NetTime::init()
p> 4 {
p> 5 bool bRet = false;
p> 6 do
p> 7 {
p> 8 CC_BREAK_IF(!CCNode::init());
p> 9
p>10 bRet = true;
p>11 } while (0);
p>12 return bRet;
p>13 }
p>14
p>15 void NetTime::requestNetTime()
p>16 {
p>17 CCHttpRequest * request = new CCHttpRequest();
p>18 request->setUrl("http://115.159.3.250:1227/WebTime.svc/");
p>19 request->setRequestType(CCHttpRequest::kHttpGet);
p>20 request->setTag("WebTime");
p>21 request->setResponseCallback(this, httpresponse_selector(NetTime::onHttpComplete));
p>22 CCHttpClient::getInstance()->send(request);
p>23 }
p>24
p>25 void NetTime::onHttpComplete(CCHttpClient * sender, CCHttpResponse * response)
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>