zoukankan      html  css  js  c++  java
  • coco2dx 2.1.3 之 使用网络请求

    1.使用get方式请求

    void HttpClientHelper::testGetRequestMethod()
     {
     cocos2d::extension::CCHttpRequest* getRequest=new cocos2d::extension::CCHttpRequest();
     getRequest->setRequestType(cocos2d::extension::CCHttpRequest::kHttpGet);
     getRequest->setUrl("http://www.baidu.com");
     getRequest->setTag("GET");
     getRequest->setResponseCallback(this, callfuncND_selector(HttpClientHelper::testGetCallbackMethod));
     
     cocos2d::extension::CCHttpClient::getInstance()->send(getRequest);
     
     getRequest->release();
     
     }
     
     void HttpClientHelper::testGetCallbackMethod(cocos2d::CCNode* sender, void* data)
     {
     CCLOG("log:testGetCallbackMethod");
     
     cocos2d::extension::CCHttpResponse* response=(cocos2d::extension::CCHttpResponse*)data;
     if(!response) return;
     
     if(!response->isSucceed())
     {
     CCLOG("RESPONSE FAILED!");
     CCLOG("ERROR BUFFER:%s",response->getErrorBuffer());
     return;
     }
     
     char statusString[64]={};
     sprintf(statusString, "HTTP STATUS CODE:%d,TAG=%s",response->getResponseCode(),response->getHttpRequest()->getTag());
     CCLOG(statusString);
     
     std::vector<char>* buffer=response->getResponseData();
     char* concatenated=(char*)malloc(buffer->size()+1);
     std::string s2(buffer->begin(),buffer->end());
     strcpy(concatenated, s2.c_str());
     CCLOG(concatenated);
     CCLog("\n\n\n\n\n");
     }

    2.使用post方式请求

    void HttpClientHelper::PostRequestMethod(CCString* data)
    { cocos2d::extension::CCHttpRequest
    * postRequest=new cocos2d::extension::CCHttpRequest(); postRequest->setRequestType(cocos2d::extension::CCHttpRequest::kHttpPost); postRequest->setUrl("http://baidu.com"); postRequest->setTag("Post"); postRequest->setResponseCallback(this,callfuncND_selector(HttpClientHelper::PostCallbackMethod)); postRequest->setRequestData(data->getCString(), data->length()); cocos2d::extension::CCHttpClient* httpClient=cocos2d::extension::CCHttpClient::getInstance(); httpClient->send(postRequest); /*cocos2d::extension::CCHttpClient::getInstance()->send(postRequest);*/ postRequest->release(); //httpClient->release(); } void HttpClientHelper::PostCallbackMethod(cocos2d::CCNode* sender) { CCLOG("log:testPostCallbackMethod"); /*cocos2d::extension::CCHttpClient::destroyInstance();*/ cocos2d::extension::CCHttpResponse* response=(cocos2d::extension::CCHttpResponse*)data; if(!response) {CCLOG("Log:response =null,plase check it."); return;} //请求失败 if(!response->isSucceed()) { CCLOG("ERROR BUFFER:%s",response->getErrorBuffer()); return; } int codeIndex=response->getResponseCode(); const char* tag=response->getHttpRequest()->getTag(); //请求成功 std::vector<char>* buffer=response->getResponseData(); std::string temp(buffer->begin(),buffer->end()); CCString* responseData=CCString::create(temp); CCLog("%s",responseData->getCString()); }
  • 相关阅读:
    浅析Python模块的引入和调用
    一篇文章带你了解CSS定位知识
    盘点4大下载神器,教你分分钟搞定文件下载
    Mysql查询语句进阶知识集锦
    (原创)高DPI适配经验系列:(四)高DPI适配示例
    (原创)高DPI适配经验系列:(三)字体与字号、缩放锚点
    (原创)IconFont(矢量图标字体)在Winform中的应用
    (原创)高DPI适配经验系列:(二)按DPI范围适配
    (原创)高DPI适配经验系列:(一)缩放比例与DPI对应关系
    [C#] (原创)一步一步教你自定义控件——06,MaskLayer(遮罩层)
  • 原文地址:https://www.cnblogs.com/mokey/p/3088662.html
Copyright © 2011-2022 走看看