国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 许昌市| 连南| 买车| 格尔木市| 曲阜市| 郎溪县| 竹溪县| 安阳县| 右玉县| 乌恰县| 湛江市| 大连市| 五原县| 晋州市| 金溪县| 泰来县| 林甸县| 秦皇岛市| 成武县| 湄潭县| 咸宁市| 左贡县| 海丰县| 乌拉特后旗| 那坡县| 奉贤区| 天峻县| 南昌市| 萨嘎县| 兴隆县| 天门市| 武威市| 安义县| 腾冲县| 康保县| 二连浩特市| 湘西| 通山县| 藁城市| 长海县| 广南县|