天天看點

cocos2d-x CCHttpClient 通路網絡

void HelloWorld::getPictureByUrl(string url)

{

    CCLog("getPictureByURl is CALLED");

    CCHttpRequest* request = new CCHttpRequest();

//request對象

    string path =

        "http://www.baidu.com/img/bdlogo.gif";

//請求的目的位址

//設定請求參數

    request->setUrl(path.c_str());

//get請求方式

    request->setRequestType(CCHttpRequest::kHttpGet);

//設定響應回調函數    

request->setResponseCallback(this,

                                 callfuncND_selector(

                                     HelloWorld::responseCallBack));

//發送請求

    CCHttpClient::getInstance()->send(request);

//釋放資源    

request->release();

    CCLog("getPictureByURl is CALLED OVER");

}

void HelloWorld::responseCallBack(

    CCNode* node,void* data)

{

    CCLog("response is CALLED");

//獲得響應對象

    CCHttpResponse* response = (CCHttpResponse*)data;

    if(!response)

    {

        CCLog("response is NULL");

        return;

    }

    if(!response->isSucceed())

    {

        CCLog("response isScuuessed error");

    }

//儲存位址

    string savePath =

        CCFileUtils::sharedFileUtils()->getWritablePath()

        +"1.png";

//儲存緩沖區

    vector<char>* buffer =

        response->getResponseData();

    string str(buffer->begin(),buffer->end());

//建立檔案    

FILE* fp=fopen(savePath.c_str(), "wb+");

//寫入資料    

fwrite(str.c_str(), 1, str.length(), fp);

//關閉檔案    

fclose(fp);

    CCLog("Save pic SUCCESS");

}

繼續閱讀