对于Cocos2d-x 3.6 HttpRequest设置回调的方法,已经舍弃以前的bind()函数的方式,改用lambda表达式的方式,如下:
HttpRequest* request1 =new HttpRequest();
request1->setRequestType(HttpRequest::Type::GET);//这里是GET请求
request1->setUrl("https://httpbin.org/get");
request1->setResponseCallback([](network::HttpClient*sender,network::HttpResponse *response){
if (!response)
{
return;
}
// You can get original request type from: response->request->reqType
if (0 !=strlen(response->getHttpRequest()->getTag()))
{
log("%s completed", response->getHttpRequest()->getTag());
}
long statusCode = response->getResponseCode();
char statusString[64] = {};
sprintf(statusString, "HTTP Status Code: %ld, tag = %s", statusCode, response->getHttpRequest()->getTag());
// _labelStatusCode->setString(statusString);
log("response code: %ld", statusCode);
if (!response->isSucceed())
{
log("response failed");
log("error buffer: %s", response->getErrorBuffer());
return;
}
// dump data
std::vector<char> *buffer = response->getResponseData();
printf("Http Test, dump data: ");
for (unsignedint i = 0; i < buffer->size(); i++)
{
printf("%c", (*buffer)[i]);
}
printf("\n");
});
network::HttpClient::getInstance()->send(request1);
request1->release();