http通信出问题

代码如下

HttpManager::~HttpManager(void)
{
//if(_instance)
//{
// delete _instance;
// _instance = nullptr;
//}
}

HttpManager* HttpManager::getInstance()
{
if(!_instance)
{
_instance = new HttpManager();
}
return _instance;
}

void HttpManager::sendRequest(std::string url,std::string moudle)
{
HttpRequest* request = new HttpRequest();
std::string webAddress;
webAddress = url;
request->setUrl(webAddress.c_str());
request->setRequestType(HttpRequest::Type::POST);
request->setResponseCallback(CC_CALLBACK_2(HttpManager::onHttpRequestCompleted, this));
//request->setTag(moudle.c_str());
HttpClient::getInstance()->send(request);
request->release();
}

void HttpManager::onHttpRequestCompleted(HttpClient *sender, HttpResponse *response)
{
if (!response)
{
return;
}

if (0 != strlen(response->getHttpRequest()->getTag()))
{
log("%s completed", response->getHttpRequest()->getTag());
}

long statusCode = response->getResponseCode();
log(“response code: %ld”, statusCode);

if (!response->isSucceed())
{
log(“response failed”);
log(“error buffer: %s”, response->getErrorBuffer());
return;
}
//解析数据
std::vector *buffer = response->getResponseData(); //获取内容
std::string dataStr = “”;
for (unsigned int i = 0; i < buffer->size(); i++)
{
printf("%c", (buffer));
//dataStr = dataStr + buffer->at(i);
//log(“dataStr = %s”,dataStr);
}
//发送内容到lua解析

}

使用引擎cocos2dx 3.2版本 通讯正常 每次关闭整个窗口的时候就会报错

报错信息,随机报这两个错误

报错信息,随机报这两个错误 …

哦,美术应要求前来捧场

没有释放???

有release过了 还需要怎么释放吗

首先确认你回调到lua中的node没有被移除释放;
还有调用HttpClient::getInstance()->send(request);后,onHttpRequestCompleted方法肯定会执行的(我用的3.4测是这样),这回调即使调用HttpClient::getInstance()->destroyInstance();好像也无法取消(引擎BUG?),所以也要确保HttpManager类在回调前不能被释放,等在回调完之后再release。

问题已解决 是释放引起的问题 只要在退出窗口地方调用HttpClient::getInstance()->destroyInstance(); 就好了

解决就好:2: