// Poll and notify main thread if responses exists in queue KDvoid CCHttpClient::dispatchResponseCallbacks ( KDfloat fDelta ) { CCHttpResponse* pResponse = KD_NULL; kdThreadMutexLock ( l_pResponseQueueMutex ); if ( l_pResponseQueue->count ( ) ) { pResponse = dynamic_cast<CCHttpResponse*> ( l_pResponseQueue->objectAtIndex ( 0 ) ); l_pResponseQueue->removeObjectAtIndex ( 0 ); } kdThreadMutexUnlock ( l_pResponseQueueMutex ); if ( pResponse ) { --l_uAsyncRequestCount; CCHttpRequest* pRequest = pResponse->getHttpRequest ( ); CCObject* pTarget = pRequest->getTarget ( ); SEL_CallFuncND pSelector = pRequest->getSelector ( ); if ( pTarget && pSelector ) { ( pTarget->*pSelector ) ( (CCNode*) this, pResponse ); } pResponse->release ( ); } if ( 0 == l_uAsyncRequestCount ) { CCDirector::sharedDirector ( )->getScheduler ( )->pauseTarget ( this ); } }
void GameState::onHttpRequestCompleted(CCNode* sender,void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if(!response) return; if( NULL != strlen(response->getHttpRequest()->getTag())) { CCLog("%s complete.",response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); CCLog("response code : %d",statusCode); if(!response->isSucceed()) { CCLog("response failed"); CCLog("errorbuffer: %s",response->getErrorBuffer()); return; } std::vector<char>* buffer = response->getResponseData(); char str[200] = {""}; unsigned int i; for(i=0;i<buffer->size();i++) { str[i] = (*buffer)[i]; } str[i] = '\0'; CCLog("%s",str); }
void ParseFile::downloadFileFinished(CCNode* sender, void* param) { CCString* savePathName = 0; ParseError* error = new ParseError(); CCHttpResponse* response = (CCHttpResponse*)param; if (response->getResponseCode() == 200) { FILE* file = 0; const char* errorMsg = 0; savePathName = (CCString*)response->getHttpRequest()->getUserData(); std::vector<char>* responseData = response->getResponseData(); do { file = fopen(savePathName->getCString(), "wb"); if (file == 0) { errorMsg = "error open file!"; break; } size_t writeLen = fwrite(&responseData->front(), 1, responseData->size(), file); if (writeLen != responseData->size()) { errorMsg = "error write file!"; break; } }while(0); if (file) { fclose(file); } if (errorMsg) { error->SetError(errorMsg); } } else { if (strlen(response->getErrorBuffer()) > 0) { error->SetError(response->getErrorBuffer()); } else { std::vector<char>* responseData = response->getResponseData(); responseData->push_back('\0'); error->SetError(&responseData->front()); } } this->downloadFileCompleted(savePathName?savePathName->getCString():0, error); savePathName = (CCString*)response->getHttpRequest()->getUserData(); savePathName->release(); delete error; }
void EziSocialObject::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data) { CCHttpResponse* response = (CCHttpResponse*)data; if (!response) { CCLOG("[EziSocial Error]: No Response"); } if (0 != strlen(response->getHttpRequest()->getTag())) { //CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); if (!response->isSucceed()) { CCLog("[EziSocial Error]: response failed"); CCLog("[EziSocial Error]: error buffer: %s", response->getErrorBuffer()); return; } // Dump the data std::vector<char> *buffer = response->getResponseData(); // Create the CCSprite from data dump... CCImage * img=new CCImage(); img->initWithImageData(&(buffer->front()), buffer->size()); // Save file for resue. std::string writablePath = CCFileUtils::sharedFileUtils()->getWritablePath(); writablePath.append(response->getHttpRequest()->getTag()); img->saveToFile(writablePath.c_str()); delete img; const char* userID = ""; std::string tagString = ""; tagString.append(response->getHttpRequest()->getTag()); std::vector< std::string > strings = EziSocialObject::tokenizeStr(tagString, "_"); userID = strings[0].c_str(); internalUserPhotoCallback(writablePath.c_str(), userID); }
void S411FeedBack::onPostFinished(CCNode *node,void *data) { AppDelegate::loadingLabel ->setString(""); _menu->setEnabled(true); CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } int s=response->getHttpRequest()->getRequestType(); CCLOG("request type %d",s); if (0 != strlen(response->getHttpRequest()->getTag())) { CCLOG("%s ------>oked", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); CCLOG("response code: %d", statusCode); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); CCLOG("statusString"); if (!response->isSucceed()) { CCLOG("response failed"); CCLOG("error buffer: %s", response->getErrorBuffer()); AppDelegate::loadingLabel->setString("提交失败"); this->schedule(schedule_selector(S411FeedBack::time),1.0f,false,0.0); return; } //上面这些都是一些判断是否请求成功,下面这个是获得的请求数据 std::vector<char> *buffer = response->getResponseData(); CCLOG("Http Test, dump data: "); for (unsigned int i = 0; i < buffer->size(); i++) { CCLOG("%c", (*buffer)[i]);//这里打印从服务器返回的数据 } CCLOG("\n"); AppDelegate::loadingLabel->setString("提交成功"); this->schedule(schedule_selector(S411FeedBack::time),1.0f,false,0.0); }
void InGameScene::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); //m_labelStatusCode->setString(statusString); CCLog("response code: %d", statusCode); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } // dump data std::vector<char> *buffer = response->getResponseData(); std::string s = ""; bool isDataStarted = false; for (unsigned int i = 0; i < buffer->size(); i++) { if( isDataStarted == false && !isspace((*buffer)[i]) ) isDataStarted = true; if( isDataStarted == false) continue; s += (*buffer)[i]; } CCLog("%s", s.data() ); CCLog("\n"); if( strcmp(response->getHttpRequest()->getTag(), "URL_CREATE_ANIMAL") == 0) { string szAnimalKey = s; CCLog("InGameScene::onHttpRequestCompleted-%s : %s", response->getHttpRequest()->getTag(), szAnimalKey.data() ); } }
void ChatLayer::requestFinishedCallback(CCNode* pSender,void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if(response==NULL) { return; } int statusCode = response->getResponseCode(); char statusString[64] = {}; CCLOG(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } std::vector<char> *buffer = response->getResponseData(); std::string content(buffer->begin(),buffer->end()); XMLParser *xmlParser = XMLParser::parseWithString(content.c_str()); CCLOG("%s",xmlParser->getString("content")->getCString()); // parseJson(); }
void MyHttpRequest::onHttpRequestCompleted(CCNode *sender,void *data) { m_isCompleted=true; CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } int s=response->getHttpRequest()->getRequestType(); CCLog("request type %d",s); if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s ------>oked", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); CCLog("response code: %d", statusCode); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); CCLog(statusString); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } std::vector<char> *buffer = response->getResponseData(); printf("Http Test, dump data: "); for (unsigned int i = 0; i < buffer->size(); i++) { //CCLog("%c", (*buffer)[i]);//这里打印从服务器返回的数据 m_responseData.push_back((*buffer)[i]); } CCLog("m_responseData:%s",m_responseData.c_str()); printf("\n"); }
void RequestTopaz::onHttpRequestCompleted(CCNode *sender, void *data) { // Loading 창 끄기 ((Loading*)Depth::GetCurPointer())->EndScene(); CCHttpResponse* res = (CCHttpResponse*) data; xml_document xmlDoc; Network::GetXMLFromResponseData(res, xmlDoc); std::string friendKakaoId = res->getHttpRequest()->getTag(); XmlParseResult(&xmlDoc, friendKakaoId); }
void HttpClientTest::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); m_labelStatusCode->setString(statusString); CCLog("response code: %d", statusCode); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } // dump data std::vector<char> *buffer = response->getResponseData(); printf("Http Test, dump data: "); for (unsigned int i = 0; i < buffer->size(); i++) { printf("%c", (*buffer)[i]); } printf("\n"); }
// Poll and notify main thread if responses exists in queue void CCHttpClient::dispatchResponseCallbacks(float delta) { // CCLog("CCHttpClient::dispatchResponseCallbacks is running"); CCHttpResponse* response = NULL; pthread_mutex_lock(&s_responseQueueMutex); if (s_responseQueue->count()) { response = dynamic_cast<CCHttpResponse*>(s_responseQueue->objectAtIndex(0)); s_responseQueue->removeObjectAtIndex(0); } pthread_mutex_unlock(&s_responseQueueMutex); if (response) { --s_asyncRequestCount; CCHttpRequest *request = response->getHttpRequest(); CCObject *pTarget = request->getTarget(); SEL_CallFuncND pSelector = request->getSelector(); if (pTarget && pSelector) { (pTarget->*pSelector)((CCNode *)this, response); } if (!request->_jsTarget.IsEmpty() && !request->_jsSelector.IsEmpty()) { response->flushDataToReadBuffer(); response->assignJavaScriptObject(CLS_CCHTTPRESPONSE_ID, false); this->getJSCCallFunc()->callJSFunction(request->_jsTarget, request->_jsSelector, this->getJSObjInstance(), response->getJSObjInstance()); } response->release(); } if (0 == s_asyncRequestCount) { CCDirector::sharedDirector()->getScheduler()->pauseTarget(this); } }
// Poll and notify main thread if responses exists in queue void CCHttpClient::dispatchResponseCallbacks(float delta) { // CCLog("CCHttpClient::dispatchResponseCallbacks is running"); CCHttpResponse* response = NULL; pthread_mutex_lock(&s_responseQueueMutex); if (s_responseQueue->count()) { response = dynamic_cast<CCHttpResponse*>(s_responseQueue->objectAtIndex(0)); s_responseQueue->removeObjectAtIndex(0); } pthread_mutex_unlock(&s_responseQueueMutex); if (response) { --s_asyncRequestCount; CCHttpRequest *request = response->getHttpRequest(); CCObject *pTarget = request->getTarget(); SEL_CallFuncND pSelector = request->getSelector(); if (pTarget && pSelector) { (pTarget->*pSelector)((CCNode *)this, response); } //lua if( request->getLuaCallback() != 0 ) { ptola::script::CLuaScriptFunctionInvoker::executeHttpResponseCallback(request->getLuaCallback(), response); } response->release(); } if (0 == s_asyncRequestCount) { CCDirector::sharedDirector()->getScheduler()->pauseTarget(this); } }
void RequestTopaz::onHttpRequestCompletedNoEncrypt(CCNode *sender, void *data) { CCHttpResponse* res = (CCHttpResponse*) data; char dumpData[110*110*2]; // 프로필 사진 받아오기 실패 if (!res || !res->isSucceed()) { //CCLog("res failed. error buffer: %s", res->getErrorBuffer()); return; } // dump data std::vector<char> *buffer = res->getResponseData(); for (unsigned int i = 0 ; i < buffer->size() ; i++) dumpData[i] = (*buffer)[i]; dumpData[buffer->size()] = NULL; // make texture2D CCImage* img = new CCImage; img->initWithImageData(dumpData, (int)buffer->size()); CCTexture2D* texture = new CCTexture2D(); texture->initWithImage(img); // set CCSprite (profile 모음 리스트에 갱신) int numOfList = friendList.size(); int index = atoi(res->getHttpRequest()->getTag()); ProfileSprite* psp = ProfileSprite::GetObj(friendList[index]->GetImageUrl()); psp->SetSprite(texture); psp->SetLoadingDone(true); // 화면에 보이는 스프라이트 교체 if (spriteClassScroll == NULL) return; spriteClassScroll->ChangeSprite(-888*(numOfList-index), psp->GetProfile()); ((CCSprite*)spriteClassScroll->FindSpriteByTag(-777*(numOfList-index)))->setOpacity(255); }
// Poll and notify main thread if responses exists in queue void CCHttpClient::dispatchResponseCallbacks(float delta) { // CCLog("CCHttpClient::dispatchResponseCallbacks is running"); CCHttpResponse* response = NULL; pthread_mutex_lock(&s_responseQueueMutex); if (s_responseQueue->count()) { response = dynamic_cast<CCHttpResponse*>(s_responseQueue->objectAtIndex(0)); s_responseQueue->removeObjectAtIndex(0); } pthread_mutex_unlock(&s_responseQueueMutex); if (response) { --s_asyncRequestCount; CCHttpRequest *request = response->getHttpRequest(); CAObject *pTarget = request->getTarget(); SEL_HttpResponse pSelector = request->getSelector(); if (pTarget && pSelector) { (pTarget->*pSelector)(this, response); } response->release(); } if (0 == s_asyncRequestCount) { CAScheduler::getScheduler()->pauseTarget(this); } }
void MailMainScene::requestFinishedCallback(CCNode* pSender,void *Rspdata) { if (!this->ValidateResponseData(pSender,Rspdata)) { return; } CCHttpResponse *response = (CCHttpResponse*)Rspdata; std::vector<char> *buffer = response->getResponseData(); std::string content(buffer->begin(),buffer->end()); CCLog(content.c_str()); CCDictionary * dictionary = CCJSONConverter::sharedConverter()->dictionaryFrom(content.c_str()); int code = ((CCNumber *)dictionary->objectForKey("code"))->getIntValue(); if (code != 200) { CCMessageBox("invoke web api failed!","ERROR"); return; } std::string requestTag(response->getHttpRequest()->getTag()); if (requestTag == "101") { mFriendList = dynamic_cast<CCArray *>(dictionary->objectForKey("friendList")); if (mFriendList==NULL) { return; } selectedindex = -1; mTableViewFriend->reloadData(); } else if (requestTag == "102"){ this->doSearchFriend(); CCMessageBox("delete friend successfully","Success"); } }
void SGHttpClient::requestFinishHandler(CCNode *sender, void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } int statusCode = response->getResponseCode(); CCLog("response code: %d", statusCode); if (!response->isSucceed()) { SGMainManager::shareMain()->getMainScene()->plat->removeConnection(); // 弹框 if (_delegate) { _delegate->requestFailed(); } CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } if (0 != strlen(response->getHttpRequest()->getTag())) { const char *responseTag = response->getHttpRequest()->getTag(); CCLog("%s completed", responseTag); int rt = atoi(responseTag); std::vector<char> *buffer = response->getResponseData(); int bufferSize = buffer->size(); char *bufferchar = new char[bufferSize]; std::copy(buffer->begin(), buffer->end(), bufferchar); switch (rt) { case MSG_HTTP_FAST_LOGIN: { this->fastLoginListener(bufferchar); break; } case MSG_HTTP_LOGIN: { this->loginListener(bufferchar); break; } case MSG_HTTP_REGISTER: { this->registerListener(bufferchar); break; } case MSg_HTTP_SERVERLIST: { this->serverListListener(bufferchar); break; } case MSG_HTTP_BING: { bindListener(bufferchar); break; } case MSG_HTTP_PASSWORD: { passwordListener(bufferchar); break; } case MSg_HTTP_LASTESTSERVER: { getlastestServer(bufferchar); break; } case MSG_HTTP_UPDATE_SERVER_STATE: { updateSelectServerResponse(bufferchar); } break; case MSG_HTTP_GET_CHANNEL_USER_ID: { rspGetChannelUserId(bufferchar); } break; default: break; } } CCUserDefault::sharedUserDefault()->setBoolForKey("pvp_tran", false); SGMainManager::shareMain()->getMainScene()->plat->removeConnection(); }
void LoadingScene::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data) { CCLog("LoadingScene::onHttpRequestCompleted"); CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); //m_labelStatusCode->setString(statusString); CCLog("response code: %d", statusCode); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } // dump data std::vector<char> *buffer = response->getResponseData(); std::string s; bool isDataStarted = false; for (unsigned int i = 0; i < buffer->size(); i++) { if( isDataStarted == false && !isspace((*buffer)[i]) ) isDataStarted = true; if( isDataStarted == false) continue; s += (*buffer)[i]; } CCLog("LoadingScene::onHttpRequestCompleted : buffer=%s", s.data() ); if(strcmp(response->getHttpRequest()->getTag(), "URL_RECEIVE_ANIMALS") == 0) { labelLoading->setString("동물들과 교감하는중..."); vector<ANIMALINFO> animalList; CCLog("URL_RECEIVE_ANIMALS: it comes %d", s.length()); bool isAlreadyExist = false; map<int, Animal*>* pList = pData->getAnimalsByAccount(SceneManager::sharedSceneManager()->getUserAccountKey()); if( pList != NULL ) isAlreadyExist = true; while (s.length() != 0) { int delimIndex = s.find('|'); string oneAnimalData; if( delimIndex != -1 ) { oneAnimalData = s.substr(0, delimIndex); s = s.substr(delimIndex+1); } else { oneAnimalData = s; s = ""; } ANIMALINFO info; info.name = oneAnimalData.substr(0, oneAnimalData.find(" ") ); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.key = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.type = (ANIMAL_TYPE)atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.level = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.sleep = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.poop = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.exp = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.fullness = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.health = atoi(oneAnimalData.substr(0, oneAnimalData.find(" ") ).data()); oneAnimalData = oneAnimalData.substr(oneAnimalData.find(" ")+1); info.status.joy = atoi(oneAnimalData.data()); CCLog("URL_RECEIVE_ANIMALS : %s %d %d %d %d %d %d %d %d %d", info.name.c_str(), info.key, info.type, info.level, info.status.sleep, info.status.poop, info.status.exp, info.status.fullness, info.status.health, info.status.joy ); pData->makeDataFromAnimalInfo(SceneManager::sharedSceneManager()->getHostAccountKey(), info); // char name[32] = "께이"; // char strMB[256] = {0,}; // wchar_t strUnicode[256] = {0,}; // memcpy(strUnicode, info.name.data(), info.name.size()); // wcstombs(strMB, info.name.data(), 256); // // // for(int i = 0; i < info.name.size(); i++ ) // { // CCLog("URL_RECEIVE_ANIMALS : name %d, %d, %d", name[i], strUnicode[i], strMB[i] ); // } } if( SceneManager::sharedSceneManager()->isFriendHome() ) { InGameScene* pInGameLayer = ((InGameScene*)InGameScene::getInGameScene()->getChildByTag(INGAME)); pInGameLayer->resetScene(SceneManager::sharedSceneManager()->getHostAccountKey()); CCDirector::sharedDirector()->popScene(); } else { if( isAlreadyExist ) { CCDirector::sharedDirector()->popScene(); CCScene* pScene = InGameScene::getInGameScene(); ((InGameScene*)(pScene->getChildByTag(INGAME)))->resetScene(SceneManager::sharedSceneManager()->getUserAccountKey()); } else CCDirector::sharedDirector()->replaceScene(InGameScene::scene()); } } }
void XMLHttpRequest::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data){ readyState = 4; CCHttpResponse *response = (CCHttpResponse *)data; if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); status = statusCode; //http status if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } // dump data std::string res; std::vector<char> *buffer = response->getResponseData(); for (unsigned int i = 0; i < buffer->size(); i++) { res += ((*buffer)[i]); } // std::string res; // std::vector<char> *buffer = response->getResponseData(); // res.clear(); // res.assign((*buffer).begin(), (*buffer).end()); responseText = res; JSBool hasAction; jsval temp_retval; do{ if (JS_HasProperty(ScriptingCore::getInstance()->getGlobalContext(), ScriptingCore::getInstance()->getGlobalObject(), "onreadystatechange", &hasAction) && hasAction) { if(!JS_GetProperty(ScriptingCore::getInstance()->getGlobalContext(), ScriptingCore::getInstance()->getGlobalObject(), "onreadystatechange", &temp_retval)) { break; } if(temp_retval == JSVAL_VOID) { break; } jsval jsret; JS_CallFunctionName(ScriptingCore::getInstance()->getGlobalContext(), ScriptingCore::getInstance()->getGlobalObject(), "onreadystatechange", 0, NULL, &jsret); } }while(0); // jsval *retval; // JS_CallFunctionName(ScriptingCore::getInstance()->getGlobalContext(), // ScriptingCore::getInstance()->getGlobalObject(), // "onreadystatechange", NULL, NULL, retval); }
void RankingScene::onHttpRequestCompleted(CCNode *sender, void *data) { CCHttpResponse *response = (CCHttpResponse*)data; if (!response) { return; } if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {0}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); if (!response->isSucceed()) { CCLabelTTF *notConnectLabel = CCLabelTTF::create("Can't load Data", "BankGothic Md BT", 20); notConnectLabel->setPosition(ccp(w/2, h/2)); this->addChild(notConnectLabel); return; } // dump data std::vector<char> *buffer = response->getResponseData(); char * data2 = (char*)(malloc(buffer->size() * sizeof(char))); int d = -1; printf("Http Test, dump data: "); for (unsigned int i = 0; i < buffer->size(); i++) { d++ ; data2[d] = (*buffer)[i]; } data2[d + 1] = '\0'; //----------------------- rapidjson::Document document; if(data2 != NULL && !document.Parse<0>(data2).HasParseError()) { for (rapidjson::SizeType i = 0; i < document.Size(); i++) { Player *player = new Player(document[i]["name"].GetString(), document[i]["point"].GetInt()); players->addObject(player); } } else { CCLog(document.GetParseError()); } d = -1; CCTableView *tableView=CCTableView::create(this, CCSizeMake(700, 350)); tableView->setDirection(kCCScrollViewDirectionVertical); tableView->setAnchorPoint(ccp(0, 0)); tableView->setPosition(ccp(size.width/8, 250)); tableView->setDelegate(this); tableView->setVerticalFillOrder(kCCTableViewFillTopDown); this->addChild(tableView, 21); tableView->reloadData(); }
void EziFacebookFriend::onHttpRequestCompleted(cocos2d::CCNode *sender, void *data) { CCHttpResponse* response = (CCHttpResponse*)data; if (!response) { CCLOG("[EziSocial Error]: No Response"); } if (0 != strlen(response->getHttpRequest()->getTag())) { //CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); if (!response->isSucceed()) { CCLog("[EziSocial Error]: response failed"); CCLog("[EziSocial Error]: error buffer: %s", response->getErrorBuffer()); return; } // Dump the data std::vector<char> *buffer = response->getResponseData(); // Create the CCSprite from data dump... CCImage * img=new CCImage(); img->initWithImageData(&(buffer->front()), buffer->size()); // Save file for resue. std::string writablePath = CCFileUtils::sharedFileUtils()->getWritablePath(); //writablePath.append(response->getHttpRequest()->getTag()); std::string fileName = ""; fileName = fileName.append(_fbID); fileName = fileName.append(".jpg"); writablePath.append(fileName); //CCLOG("File Name = %s", fileName.c_str()); //CCLOG("File Path = %s", writablePath.c_str()); cocos2d::CCTexture2D* texture = new cocos2d::CCTexture2D(); texture->initWithImage(img); if(texture) { _profilePic = cocos2d::CCSprite::createWithTexture(texture); } else { CCLOGERROR("[EziSocial Error]: Cannot create user profile pic from texture."); } img->saveToFile(writablePath.c_str()); delete img; if (_target && _selector) { (_target->*_selector)(_profilePic, _fbID.c_str()); } }