Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x中 发起http请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

bool httpTool::httprequest(char * tag,char * url,char * requestdata,int requestTypE)

{

// 请求示例
//CChttprequest* request = new CChttprequest();
//request->setUrl(url /*"http://httpbin.org/delete"*/);
//request->setrequestType((CChttprequest::httprequestTypE)requestType/*CChttprequest::khttpdelete*/);
//request->setResponseCallBACk(this,httpresponse_SELEctor(CCSceneEx::onhttprequestCompleted));
//request->setTag(tag/*"deletE test2"*/);
//CChttpClient::geTinstance()->send(request);
//request->release();


//实际代码

if (tag == 0 || tag[0] == '\0' || url == 0 || url[0] = '\0' || requestType < 0 || requestType > (int)network::httprequest::Type::UNKNOWN)

{

return false;

}

//请求的大体思路是

//1.使用Network::httprequest构造要请求的数据

//2.使用Network::httpClient使用这个作为发射器把数据发射出去

network::httprequest * request = new network::httprequest();

request->setUrl(url); //设置请求地址

request->setrequestType((network::httprequest::TypE)requestTypE); //设置请求类型 ,有GET,POST,PUT,deletE,UNKNOWN 五钟

if (requestdata != 0 && requestdata[0] != '\0') //如果有请求参数

{

request->setrequestData[requestdata,strlen(requestdata)); //设置请求参数

}

network::cchttprequestCallBACk httprequestCallBACk = std::bind(&CCSceneEx::onhttprequestCompleted,this,std::placeholder::-1,std::placeholder::_2);

request->setResponseCallBACk(httprequestCallBACk); //设置回调函数

request->setTag(tag); //设置标签

network::httpClient::geTinstance()->send(request); //发送请求

request->release(); //释放请求

}


//httprequest回调函数

void httpTool::onhttprequestCompleted(network::httpClient * sender,network::httpResponse * responsE)

{

if (!responsE)

{

return;

}

const char * pTag = response->gethttprequest()->getTag();

if(0 != strlen(pTag))

{

}

int ret = 0;

int statusCode = response->getResponseCode();

char * buffer = 0;

int bufferSize = 0;

char * errorInfo = "";

if (response->isSucceed())

{

ret = 1;

std::vector<char> * vbuffer = response->getResponseData();

bufferSize = vbuffer->size();

buffer = new char[bufferSize + 1];

for (int i = 0; i < bufferSize; ++i)

{

buffer[i] = (*vbuffer)[i];

}

buffer[bufferSize] = '\0';

}

else

{

ret = 0;

errorInfo = (char *)response->getErrorBuffer();

}

CLuaParam luaParams[6];

luaParams[0] = ret;

luaParams[1] = statusCode;

luaParams[2] = pTag;

luaParams[3] = bufer;

luaParams[4] = bufferSize;

luaParams[5] = errorInfo;


LuaCpPDAta::sharedLuaCpPDAta()->RunLuaFunction("Netupdate_OnhttprequestCompleted",luaParams,6);

if (buffer != 0)

{

delete[] buffer;

}

}

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x中 发起http请求全部内容,希望文章能够帮你解决Cocos2d-x中 发起http请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。