国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

獲取網(wǎng)絡(luò)時間

2019-11-09 17:10:24
字體:
供稿:網(wǎng)友

新建一個C++類 ,命名為NetTime,繼承自CCNode并重寫init()方法。然后引入CCHttpClient和rapidjson需要的頭文件。我們的需求是可以返回NetTime的年,月,日,小時,分和秒,分別定義它們的PRivate字段和public方法:

#ifndef __NETTIME_H__#define __NETTIME_H__#include "cocos2d.h"#include "cocos-ext.h"#include "CocoStudio/Json/rapidjson/rapidjson.h"using namespace cocos2d;using namespace extension;using namespace rapidjson;class NetTime:public CCNode{    public:        CREATE_FUNC(NetTime);        int getYear(){            return _year;        };        int getMonth(){            return _month;        };        int getDay(){            return _day;        };        int getHour(){            return _hour;        };        int getMinute(){            return _minute;        };        int getSecond(){            return _second;        };        void getNetTime();        void requestNetTime();    private:        virtual bool init();        int _year, _month, _day, _hour, _minute, _second;        void onHttpComplete(CCHttpClient * sender, CCHttpResponse * response);        void readJson(std::string jsonStr);};#endif

我們還需要一個requestNetTime方法來發(fā)起http請求,并在回調(diào)方法里面實現(xiàn)數(shù)據(jù)的獲取和解析,直接把前面的代碼拷貝過來即可:

#include "NetTime.h"bool NetTime::init(){    bool bRet = false;    do    {        CC_BREAK_IF(!CCNode::init());                bRet = true;    } while (0);    return bRet;}void NetTime::requestNetTime(){    CCHttpRequest * request = new CCHttpRequest();    request->setUrl("http://115.159.3.250:1227/WebTime.svc/");    request->setRequestType(CCHttpRequest::kHttpGet);    request->setTag("WebTime");    request->setResponseCallback(this, httpresponse_selector(NetTime::onHttpComplete));    CCHttpClient::getInstance()->send(request);}void NetTime::onHttpComplete(CCHttpClient * sender, CCHttpResponse * response){    CCHttpClient::getInstance()->release();    if (!response)        return;    if (0 != strlen(response->getHttpRequest()->getTag()))    {        CCLog("%s completed", response->getHttpRequest()->getTag());    }    int statusCode = response->getResponseCode();    char statusString[64] = {};    sprintf(statusString, "HTTP Status: %d, tag = %s", statusCode, response->getHttpRequest()->getTag());    CCLog("%s", statusString);    if (!response->isSucceed())    {        CCLog("response failed");        CCLog("error buffer:%s", response->getErrorBuffer());        return;    }    std::vector<char> * buffer = response->getResponseData();    std::string str;    for (unsigned i = 0; i < buffer->size(); i++)    {        char a = (*buffer)[i];        str.append(1, a);    }    CCLog("%s", str.c_str());    readJson(str);}void NetTime::readJson(std::string jsonStr){    Document doc;    doc.Parse<0>(jsonStr.c_str());    if (!doc.IsObject())        return;    if (doc.HasMember("Year") && doc.HasMember("Month") && doc.HasMember("Day") && doc.HasMember("Hour") && doc.HasMember("Minute") && doc.HasMember("Second"))    {        _year = doc["Year"].GetInt();        _month = doc["Month"].GetInt();        _day = doc["Day"].GetInt();        _hour = doc["Hour"].GetInt();        _minute = doc["Minute"].GetInt();        _second = doc["Second"].GetInt();    }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 荔波县| 达孜县| 成都市| 通州区| 孙吴县| 庐江县| 汉源县| 三门峡市| 呼和浩特市| 阳山县| 博爱县| 石台县| 潞城市| 枣强县| 珠海市| 通海县| 卓资县| 宣汉县| 綦江县| 托克托县| 清徐县| 双流县| 宝应县| 兖州市| 屏东市| 伽师县| 玉溪市| 军事| 宁蒗| 清苑县| 榆社县| 潼关县| 梅河口市| 子长县| 从江县| 巴青县| 阿坝| 同心县| 萨迦县| 周口市| 隆子县|