本文整理汇总了C++中CCHttpResponse类的典型用法代码示例。如果您正苦于以下问题:C++ CCHttpResponse类的具体用法?C++ CCHttpResponse怎么用?C++ CCHttpResponse使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CCHttpResponse类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: kdThreadMutexLock
// 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 );
}
}
示例2: ParseError
void ParseFile::deleteFileFinished(CCNode* sender, void* param)
{
bool success = false;
ParseError* error = new ParseError();
CCHttpResponse* response = (CCHttpResponse*)param;
if (response->getResponseCode() == 200)
{
success = true;
}
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->deleteFileCompleted(success, error);
delete error;
}
示例3: onHttpRequestCompleteHandler
void DataRequest::onHttpRequestCompleteHandler(cocos2d::CCNode *pSender, void *pObj)
{
CCHttpResponse *pResponse = (CCHttpResponse* )pObj;
if (!pResponse)
{
return;
}
if (pResponse->isSucceed())
{
std::string responseData;
std::vector<char> *buffer = pResponse->getResponseData();
char buff[24];
for (unsigned int i = 0; i < buffer->size(); i ++)
{
sprintf(buff, "%c", (*buffer)[i]);
responseData.append(buff);
}
//CCLog(responseData.c_str());
if (m_pTarget && m_requestAction)
{
(m_pTarget->*m_requestAction)(RequestStatusSucceed, responseData);
}
}
else
{
const char *error = pResponse->getErrorBuffer();
if (m_pTarget && m_requestAction)
{
(m_pTarget->*m_requestAction)(RequestStatusError, error);
}
}
}
示例4: getRankListRequestCompleted
void RankScene::getRankListRequestCompleted(CCNode* sender,void* data){
CCHttpResponse* response = (CCHttpResponse*)data;
if (!response) { return; }
int statusCode = response->getResponseCode();
std::vector<char> *buffer = response->getResponseData();
printJson(buffer);
int counter_name = 0;
int counter_winPercent = 0;
int counter_weeklywin = 0;
for (unsigned int i = 0; i < buffer->size(); i++) {
if ((*buffer)[i] == '"' && (*buffer)[i+1] == 'n' && (*buffer)[i+2] == 'i' && (*buffer)[i+3] == 'c' && (*buffer)[i+4] == 'k' && (*buffer)[i+5] == '"') {
for (int j = i + 8 ; (*buffer)[j] != '"' ; j++) { nickName_Rank[counter_name] += (*buffer)[j]; }
counter_name++;
}
if((*buffer)[i] == '"' && (*buffer)[i+1] == 'w' && (*buffer)[i+2] == 'e' && (*buffer)[i+3] == 'e' && (*buffer)[i+4] == 'k' && (*buffer)[i+5] == 'l' && (*buffer)[i+19] == '"') {
for (int j = i + 21 ; (*buffer)[j] != ',' ; j++) { winPercent_Rank[counter_winPercent] += (*buffer)[j]; }
winPercent_Rank[counter_winPercent] = float2string(atof(winPercent_Rank[counter_winPercent].c_str())*100) + "%";
counter_winPercent++;
}
if((*buffer)[i] == '"' && (*buffer)[i+1] == 'w' && (*buffer)[i+2] == 'e' && (*buffer)[i+3] == 'e' && (*buffer)[i+4] == 'k' && (*buffer)[i+5] == 'l' && (*buffer)[i+11] == '"') {
for (int j = i + 13 ; (*buffer)[j] != ',' ; j++) { weeklyWin_Rank[counter_weeklywin] += (*buffer)[j]; }
counter_weeklywin++;
}
}
getServerTime();
}
示例5: getRankRequestCompleted
void RankScene::getRankRequestCompleted(CCNode* sender,void* data){
CCHttpResponse* response = (CCHttpResponse*)data;
if (!response) { return; }
int statusCode = response->getResponseCode();
std::vector<char> *buffer = response->getResponseData();
printJson(buffer);
}
示例6: onHttpRequestCompleted
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);
}
示例7: CC_SAFE_RELEASE_NULL
void* CCHttpClient::httpThreadEntry(void* arg) {
// handler, it is released if init failed or released in dispatchNotification
ccHttpContext* ctx = (ccHttpContext*)arg;
CURLHandler* curl = ctx->curl;
if(!curl->init()) {
CC_SAFE_RELEASE_NULL(curl);
}
if(curl) {
// create response
CCHttpResponse* response = new CCHttpResponse(curl->m_ctx->request);
curl->m_ctx->response = response;
// process request
bool retValue = false;
switch (curl->m_ctx->request->getMethod()) {
case CCHttpRequest::kHttpGet:
retValue = curl->processGetTask();
break;
case CCHttpRequest::kHttpPost:
retValue = curl->processPostTask();
break;
case CCHttpRequest::kHttpPut:
retValue = curl->processPutTask();
break;
case CCHttpRequest::kHttpDelete:
retValue = curl->processDeleteTask();
break;
default:
CCAssert(true, "CCHttpClient: unkown request type, only GET and POST are supported");
break;
}
// save response
response->setResponseCode(curl->m_responseCode);
if (retValue) {
response->setSuccess(true);
} else {
response->setSuccess(false);
response->setErrorData(curl->m_errorBuffer);
}
// done
curl->onRequestDone();
}
// exit
pthread_exit(NULL);
return NULL;
}
示例8: getHeroInformationRequestCompleted
void ASUser::getHeroInformationRequestCompleted(cocos2d::CCNode *sender, void *data){
for (int i = 0 ; i < 5 ; i++) {
HeroLevel[i] = 0;
HeroUnLocked[i] = false;
}
CCHttpResponse* response = (CCHttpResponse*)data;
if (!response) { return; }
int statusCode = response->getResponseCode();
std::vector<char> *buffer = response->getResponseData();
printJson(buffer);
for (unsigned int i = 0; i < buffer->size(); i++) {
//1.1 第1个英雄的等级情况
if ((*buffer)[i] == '{' && (*buffer)[i+1] == '"' && (*buffer)[i+2] == 'a' && (*buffer)[i+3] == 'v' && (*buffer)[i+4] == 'a' && (*buffer)[i+13] == '0' && (*buffer)[i+14] == ','){
HeroUnLocked[0] = true;
for (int j = i+23;(*buffer)[j] != '}' ; j++) { HeroLevelStr[0] += (*buffer)[j]; }
}
//1.2 第2个英雄的等级情况
if ((*buffer)[i] == '{' && (*buffer)[i+1] == '"' && (*buffer)[i+2] == 'a' && (*buffer)[i+3] == 'v' && (*buffer)[i+4] == 'a' && (*buffer)[i+13] == '1' && (*buffer)[i+14] == ','){
HeroUnLocked[1] = true;
for (int j = i+23;(*buffer)[j] != '}' ; j++) { HeroLevelStr[1] += (*buffer)[j]; }
}
//1.3 第3个英雄的等级情况
if ((*buffer)[i] == '{' && (*buffer)[i+1] == '"' && (*buffer)[i+2] == 'a' && (*buffer)[i+3] == 'v' && (*buffer)[i+4] == 'a' && (*buffer)[i+13] == '2' && (*buffer)[i+14] == ','){
HeroUnLocked[2] = true;
for (int j = i+23;(*buffer)[j] != '}' ; j++) { HeroLevelStr[2] += (*buffer)[j]; }
}
//1.4 第4个英雄的等级情况
if ((*buffer)[i] == '{' && (*buffer)[i+1] == '"' && (*buffer)[i+2] == 'a' && (*buffer)[i+3] == 'v' && (*buffer)[i+4] == 'a' && (*buffer)[i+13] == '3' && (*buffer)[i+14] == ','){
HeroUnLocked[3] = true;
for (int j = i+23;(*buffer)[j] != '}' ; j++) { HeroLevelStr[3] += (*buffer)[j]; }
}
//1.5 第5个英雄的等级情况
if ((*buffer)[i] == '{' && (*buffer)[i+1] == '"' && (*buffer)[i+2] == 'a' && (*buffer)[i+3] == 'v' && (*buffer)[i+4] == 'a' && (*buffer)[i+13] == '4' && (*buffer)[i+14] == ','){
HeroUnLocked[4] = true;
for (int j = i+23;(*buffer)[j] != '}' ; j++) { HeroLevelStr[4] += (*buffer)[j]; }
}
}
for (int i = 0 ; i < 5 ; i++) {
HeroLevel[i] = atoi(HeroLevelStr[i].c_str())+1;
cout<<HeroLevel[i]<<" ";
}
cout<<endl;
for (int i = 0 ; i < 5 ; i++) {
cout<<HeroUnLocked[i]<<" ";
}
cout<<endl;
}
示例9: getUserHistoryGameRequestCompleted
void LogInScene::getUserHistoryGameRequestCompleted(CCNode* sender,void* data){
CCHttpResponse* response = (CCHttpResponse*)data;
if (!response) { return; }
int statusCode = response->getResponseCode();
std::vector<char> *buffer = response->getResponseData();
printJson(buffer);
//1.解析
string boardIdStr,WinTimesStr,LoseTimesStr;
for (unsigned int i = 0; i < buffer->size(); i++) {
//1.排行榜编号
if ((*buffer)[i] == '"' && (*buffer)[i+1] == 'b' && (*buffer)[i+2] == 'o' && (*buffer)[i+3] == 'a' && (*buffer)[i+4] == 'r') {
for (int j = i + 11; (*buffer)[j] != ','; j++) { boardIdStr += (*buffer)[j]; }
}
//2.历史胜场
else if ((*buffer)[i] == '"' && (*buffer)[i+1] == 'h' && (*buffer)[i+2] == 'i' && (*buffer)[i+3] == 's' && (*buffer)[i+4] == 't' && (*buffer)[i+9] == 'w' && (*buffer)[i+12] == '"') {
for (int j = i + 14; (*buffer)[j] != ','; j++) { WinTimesStr += (*buffer)[j]; }
}
//3.历史败场
else if ((*buffer)[i] == '"' && (*buffer)[i+1] == 'h' && (*buffer)[i+2] == 'i' && (*buffer)[i+3] == 's' && (*buffer)[i+4] == 't' && (*buffer)[i+9] == 'l' && (*buffer)[i+13] == '"') {
for (int j = i + 15; (*buffer)[j] != ','; j++) { LoseTimesStr += (*buffer)[j]; }
}
//4.如果还没玩过这个
if ((*buffer)[i] == '4' && (*buffer)[i+1] == '0' && (*buffer)[i+2] == '4') {
boardNotFound = true;
break;
}
}
//2.计算rank
if (boardNotFound)
MainUser->Rank[tmpBoardID] = 0;
else{
int _id = atoi(boardIdStr.c_str());
int WinTimes = atoi(WinTimesStr.c_str());
int LoseTimes = atoi(LoseTimesStr.c_str());
MainUser->Rank[tmpBoardID] = MainUser->calculateRank(_id,WinTimes,LoseTimes);
cout<<_id<<":胜"<<WinTimes<<" 负"<<LoseTimes<<" Rank为"<<MainUser->Rank[tmpBoardID]<<endl;
}
//3.继续下一个题的rank
if (tmpBoardID < 14) {
tmpBoardID++;
boardNotFound = false;
getUserHistoryGame(tmpBoardID);
}
else
box->closeMessageBox();
}
示例10: onHttpRequestCompleted
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() );
}
}
示例11: onHttpRequestRegisterCallBack
void ClientConnect::onHttpRequestRegisterCallBack(cocos2d::CCNode *sender, void *data)
{
CCHttpResponse *response = (CCHttpResponse*)data;
lua_State* ls = CCLuaEngine::defaultEngine()->getLuaStack()->getLuaState();
if (!response->isSucceed())//连接失败
{
lua_getglobal(ls, "ConnectErrorBack");
int error = lua_pcall(ls, 0, 0, 0);
if(error!=0){
CCLOG("Run Lua Error: %s", lua_tostring(ls, -1));
}
return;
}
std::string bufferStr;
std::vector<char> *buffer = response->getResponseData();
for (std::vector<char>::iterator it = buffer->begin(); it != buffer->end(); ++it)
{
bufferStr.push_back(*it);
}
Json* jobject=Json_create(bufferStr.c_str());
if ( NULL == jobject )
{
CCLog( "[CheckUpdate failed]down version file error." );
}
lua_getglobal(ls, "RegisterCallBack");
lua_newtable(ls);
lua_pushstring(ls, "isOk");
lua_pushnumber(ls, Json_getInt(jobject,"isOk",0));
lua_settable(ls, -3);
lua_pushstring(ls, "accountid");
lua_pushstring(ls, Json_getString(jobject,"accountid",""));
lua_settable(ls, -3);
lua_pushstring(ls, "account");
lua_pushstring(ls, Json_getString(jobject,"account",""));
lua_settable(ls, -3);
lua_pushstring(ls, "password");
lua_pushstring(ls, Json_getString(jobject,"password",""));
lua_settable(ls, -3);
int error = lua_pcall(ls, 1, 0, 0);
if(error!=0){
CCLOG("Run Lua Error: %s", lua_tostring(ls, -1));
}
}
示例12:
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);
}
示例13: onHttpRequestCompleted
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);
}
示例14: onHttpRequestCompleted
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);
}
示例15: LogInRequestCompleted
void LogInScene::LogInRequestCompleted(CCNode* sender,void* data){
CCHttpResponse* response = (CCHttpResponse*)data;
if (!response) { return; }
int statusCode = response->getResponseCode();
std::vector<char> *buffer = response->getResponseData();
printJson(buffer);
if (statusCode == 200) {
//1.标记为已经登录
if (!MainUser->hasLogIn) {
MainUser->hasLogIn = true;
BeginMenuFallDown(); //关闭网络,进入游戏,没有按钮掉下来,再打开网络,重新登录以后,要掉下来
}
//2.记录服务器发回的信息
if(!MainUser->initUser(buffer))
MainUser->hasChosenHero = false;
else
MainUser->hasChosenHero = true;
saveLogInInformation(UserNameStr,PassWordStr);
//3.初始化rank
tmpBoardID = 0;
getUserHistoryGame(tmpBoardID);
}
else{
if(statusCode == 401){
box->closeMessageBox();
box = AsMessageBox::createMessageBox("用户名与密码不匹配", 2, 1);
box->setPosition(CCPointZero);
addChild(box,100);
}
else if(statusCode == 404){
box->closeMessageBox();
box = AsMessageBox::createMessageBox("该用户不存在", 2, 1);
box->setPosition(CCPointZero);
addChild(box,100);
}
else{
box->closeMessageBox();
box = AsMessageBox::createMessageBox("无法连接,请检查您的网络", 2, 1);
box->setPosition(CCPointZero);
addChild(box,100);
}
}
}