cocos2dx 連接php

#include "HelloWorldScene.h"
#include "AppMacros.h"
#include "pthread.h"  
#include "Json.h"
USING_NS_CC;


CCScene* HelloWorld::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();
    
    // 'layer' is an autorelease object
    HelloWorld *layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
void HelloWorld::onHttpRequestCompleted(CCHttpClient *sender, CCHttpResponse *response)
{
	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 infoStr = string(buffer->begin()+5, buffer->end());
	CCLog("a");
	const char* _ch = infoStr.c_str();
	CCLog(infoStr.c_str());
	CCLog(_ch);

	Json* myjson = Json_create(_ch);
	const char* _ch1= Json_getString(myjson,"name","");
	CCLog(_ch1);
	//m_labelStatusCode->setString(infoStr.c_str());

}
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    CCSize visibleSize = CCDirector::sharedDirector()->getWinSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
	{
		CCHttpRequest* request = new CCHttpRequest();
		request->setUrl("http://192.168.0.148/phpProject/test1.php?user=wu");
		request->setRequestType(CCHttpRequest::kHttpGet);
		request->setResponseCallback(this, httpresponse_selector(HelloWorld::onHttpRequestCompleted));
		request->setTag("GET test1");
		CCHttpClient::getInstance()->send(request);
		request->release();
	}
	return true;
}



void HelloWorld::menuCloseCallback(CCObject* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
	CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
#else

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
#endif
}

bool HelloWorld::ccTouchBegan( CCTouch* touch, CCEvent* event )
{
	CCLog("touchBegan1");
	return true;
}

<?php
header("Access-Control-Allow-Origin: *");

if(isset($_GET['user'])){
 $_arr = array('id' => 1, 'name' => 'wuhongxing', 'age' => 20, 'sex' =>0);
 $_arr = json_encode($_arr);
 echo $_arr;
}
else{
    echo "請先登錄該網站";
}
?>
如果前面出現幾個識別不了的字符, 再sublime中保存編碼爲utf-8
發佈了215 篇原創文章 · 獲贊 8 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章