通过url获取图片,通常用于获取微信头像
ImageView* imageView = ImageView::create();imageView->loadTextureFromURL(buffer2,buffer1 );
imageView->setPosition(Vec2(298,LayoutSize.height - 75));
imageView->setScale(0.26);
addChild(imageView);
void ImageView::loadTextureFromURL(const char* key,const char* url)
{
std::string path = FileUtils::getInstance()->getWritablePath();
// path+="cache/";
path+=key;
if(FileUtils::getInstance()->isFileExist(path))
{
loadTexture(path);
}
else
{
network::HttpRequest* request = new (std::nothrow) network::HttpRequest();
request->setUrl(url);
request->setRequestType(network::HttpRequest::Type::GET);
request->setResponseCallback([this,path](network::HttpClient* client, network::HttpResponse* response)
{
if (!response->isSucceed())
{
CCLOG("Receive Error! %s\n",response->getErrorBuffer());
return ;
}
std::vector<char> *buffer = response->getResponseData();
CCLOG("path: %s",path.c_str());
std::string bufffff(buffer->begin(),buffer->end());
FILE *fp = fopen(path.c_str(), "wb+");
fwrite(bufffff.c_str(), 1,buffer->size(),fp);
fclose(fp);
loadTexture(path);
});
network::HttpClient::getInstance()->sendImmediate(request);
request->release();
}
}