void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// CCDirector::sharedDirector()->end();
//
// #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
// exit(0);
// #endif
extension::CCHttpRequest* req = new extension::CCHttpRequest();
req->setUrl("http://127.0.0.1/xm/xm.plist");
req->setRequestType(extension::CCHttpRequest::kHttpPost);
std::vector<std::string> headers;
headers.push_back("Content-Type: application/json; charset=utf-8");
req->setHeaders(headers);
const char* postData = "catalog=2&pageIndex=1&pageSize=5";
req->setRequestData(postData,strlen(postData));
req->setResponseCallback(this,callfuncND_selector(HelloWorld::onHttpRequestCompleted));
req->setTag("Post_my_data");
extension::CCHttpClient::getInstance()->send(req);
req->release();
}
void HelloWorld::onHttpRequestCompleted( cocos2d::CCNode *sender ,void *data )
{
CCLOG("0---------------onHttpRequestCompleted");
AllocConsole();
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
extension::CCHttpResponse* rsp = (extension::CCHttpResponse*)data;
if (!rsp)
{
return;
}
if (0 != strlen(rsp->getHttpRequest()->getTag()))
{
CCLog("%s completed", rsp->getHttpRequest()->getTag());
}
int statusCode = rsp->getResponseCode();
char statusString[64] = {};
sprintf(statusString ,"Http status code:%d ,tag = %s" ,statusCode ,rsp->getHttpRequest()->getTag());
CCLog("response code:%d" ,statusCode);
if (!rsp->isSucceed())
{
//this->praseJsonFromString();m_jsonrpc.bnmjsonfile.jf
this->praseJsonFromFile("m_jsonrpc.bn");
CCLog("response failed");
CCLog("error buffer:%s" ,rsp->getErrorBuffer());
}
std::vector<char> *buffer = rsp->getResponseData();
std::string result = "";
for (unsigned int i = 0; i < buffer->size(); i ++)
{
printf("%c" ,(*buffer)[i]);
}
}
int HelloWorld::praseJsonFromString()
{
const char* str = "{\"uploadid\": \"UP000000\",\"code\": 100,\"msg\": \"\",\"files\": \"\"}";
Json::Reader j_reader;
Json::Value j_value;
if (j_reader.parse(str,j_value))
{
std::string upload_id = j_value["uploadid"].asString();
CCLog("uploadid=%s",upload_id.c_str());
int code = j_value["code"].asInt();
}
return 0;
}
int HelloWorld::praseJsonFromFile( const char* fileName )
{
Json::Reader j_reader;
Json::Value j_value;
std::ifstream d_to_m;
d_to_m.open(fileName,std::ios::binary);
if (j_reader.parse(d_to_m,j_value))
{
// 得到"files"的数组个数
// int file_size = j_value["files"].size();
// // 遍历数组
// for(int i = 0; i < file_size; ++i)
// {
// Json::Value val_image = j_value["files"][i]["images"];
// CCLOG("i=%d",i);
// CCLOG("file_size=%d",file_size);
// int image_size = val_image.size();
// for(int j = 0; j < image_size; ++j)
// {
// std::string type = val_image[j]["type"].asString();
// std::string url = val_image[j]["url"].asString();
// //CCLOG("type=%s,url=%s",type.c_str(),url.c_str());
// }
// }
CCLOG("%s",j_value.toStyledString().c_str());
CCLOG("j_value[result][ssid]=%s",j_value["result"]["ssid"].asString().c_str());
}
d_to_m.close();
return 0;
}
cocos2dx中Http链接以及使用JsonCPP解析的简单函数
最新推荐文章于 2020-11-23 17:55:47 发布