Cocos2d-x中 发起http请求
bool httpTool::httpRequest(char * tag,char * url,char * requestdata,int requestType) { // 请求示例
//实际代码 if (tag == 0 || tag[0] == ' ' || url == 0 || url[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] != ' ') //如果有请求参数 { 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] = ' '; } 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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |