1.导入头文件
#include "network/HttpClient.h"
#include "network/HttpRequest.h"
#include "network/HttpResponse.h"
USING_NS_CC;
using namespace std;
using namespace network;
2.
void SXMJDowloadImg::downloadPicture(string url) {
HttpRequest *request = new HttpRequest();
request->setRequestType(HttpRequest::Type::GET);
request->setTag("downLoad tag 1");
// request->setUrl("http://v1.qzone.cc/avatar/201508/07/11/15/55c422c576a8b002.jpg%21200x200.jpg");
request->setUrl(url);
request->setResponseCallback(CC_CALLBACK_2(SXMJDowloadImg::onDownloadComplete, this));
HttpClient::getInstance()->sendImmediate(request); request->release();
}
void SXMJDowloadImg::onDownloadComplete(HttpClient *sender, HttpResponse *response) {
if (!response) {
return;
} if (!response->isSucceed()) {
CCLOG("error %s", response->getErrorBuffer());
return;
}
std::vector<char> *buffData = response->getResponseData();
char *buff = (char *)malloc(buffData->size());
std::copy(buffData->begin(), buffData->end(), buff);
auto fileName = FileUtils::getInstance()->getWritablePath() + "imgLocalName" + ".jpg";
log("the fileName is %s", fileName.c_str());
FILE *fp = fopen(fileName.c_str(), "wb+"); fwrite(buff, 1, buffData->size(), fp);
fclose(fp);
}