资源简介
libcurl for Android,支持ssl,使用cyassl编译,非常小,附带一个下载文件的示例
代码片段和文件信息
#include
#include
#include “DownloadModule.h“
DownLoadModule::DownLoadModule(bool binit) :
m_pCurl(NULL)
{
bInit = binit;
if(bInit)
{
Init();
}
m_pCurl = curl_easy_init();
}
DownLoadModule::~DownLoadModule()
{
curl_easy_cleanup(m_pCurl);
m_pCurl = NULL;
if(bInit)
{
Cleanup();
}
}
void DownLoadModule::Init()
{
curl_global_init(CURL_GLOBAL_ALL);
}
void DownLoadModule::Cleanup()
{
curl_global_cleanup();
}
size_t DownLoadModule::DownLoadPackage(void *ptr size_t size size_t nmemb
void *userdata)
{
FILE *fp = (FILE*) userdata;
//LOGD(“dowload: %d%s“size*nmemb(char *)ptr);
size_t written = fwrite(ptr size nmemb fp);
return written;
}
long DownLoadModule::GetLocalFileLenth(const string& strFileName)
{
unsigned long filesize = 0;
struct stat statbuff;
if (stat(strFileName.c_str() &statbuff) < 0)
{
return filesize;
}
else
{
filesize = statbuff.st_size;
}
return filesize;
}
bool DownLoadModule::DownLoad(std::string strUrl std::string strStoragePath
std::string strFileName)
{
bool bok = false;
// Create a file to save package.
if (0 != access(strStoragePath.c_str() F_OK))
mkdir(strStoragePath.c_str() S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
const string outFileName = strStoragePath + “/“ + strFileName;
//long localLen = GetLocalFileLenth(outFileName.c_str());
DownloadUserData userData;
userData.pf = NULL;
strcpy(userData.FileNameoutFileName.c_str());
FILE *fp = fopen(outFileName.c_str() “a+b“);
if (!fp)
{
//LOGD(“fopen %s fail.“outFileName.c_str());
return bok;
}
fseek(fp 0 SEEK_END);
// Download pacakge
CURLcode res;
curl_easy_setopt(m_pCurl CURLOPT_URL strUrl.c_str());
curl_easy_setopt(m_pCurl CURLOPT_WRITEFUNCTION DownLoadPackage);
curl_easy_setopt(m_pCurl CURLOPT_WRITEDATA fp);
curl_easy_setopt(m_pCurl CURLOPT_NOPROGRESS true);
//curl_easy_setopt(m_pCurl CURLOPT_TIMEOUT 30);
curl_easy_setopt(m_pCurl CURLOPT_NOSIGNAL 1L);
curl_easy_setopt(m_pCurl CURLOPT_HEADER 0L);
curl_easy_setopt(m_pCurl CURLOPT_NOBODY 0L);
curl_easy_setopt(m_pCurl CURLOPT_FOLLOWLOCATION 1L);
if(strUrl.find(“https://“)==0)
{
curl_easy_setopt(m_pCurl CURLOPT_SSL_VERIFYPEER 0L);
curl_easy_setopt(m_pCurl CURLOPT_SSL_VERIFYHOST 0L);
}
ErrCode = 0;
//curl_easy_setopt(m_pCurl CURLOPT_RESUME_FROM localLen);
//LOGD(“Download: %s“strUrl.c_str());
res = curl_easy_perform(m_pCurl);
if (res != 0)
{
ErrCode = res;
//LOGD(“DownLoad fail: %d“res);
fclose(fp);
return bok;
}
fclose(fp);
bok = true;
return bok;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2695 2017-02-05 11:56 DownloadModule.cpp
文件 1050 2017-01-20 08:41 DownloadModule.h
目录 0 2017-02-05 11:09 include\
文件 2181 2017-01-20 08:41 include\Makefile.am
文件 21822 2017-01-20 08:41 include\Makefile.in
文件 89338 2017-01-20 08:41 include\curl.h
文件 22319 2017-01-20 08:41 include\curlbuild.h
文件 7454 2017-01-20 08:41 include\curlbuild.h.cmake
文件 7143 2017-01-20 08:41 include\curlbuild.h.in
文件 8934 2017-01-20 08:41 include\curlrules.h
文件 2741 2017-01-20 08:41 include\curlver.h
文件 3472 2017-01-20 08:41 include\easy.h
文件 2565 2017-01-20 08:41 include\mprintf.h
文件 14813 2017-01-20 08:41 include\multi.h
文件 1330 2017-01-20 08:41 include\stdcheaders.h
文件 37397 2017-01-20 08:41 include\typecheck-gcc.h
目录 0 2017-02-05 11:54 libs\
目录 0 2017-02-05 11:54 libs\armeabi\
文件 304704 2017-02-05 11:03 libs\armeabi\libcurl.so
目录 0 2017-02-05 11:54 libs\armeabi-v7a\
文件 292424 2017-02-05 11:08 libs\armeabi-v7a\libcurl.so
目录 0 2017-02-05 11:54 libs\mips\
文件 562576 2017-02-05 11:15 libs\mips\libcurl.so
目录 0 2017-02-05 11:54 libs\x86\
文件 480764 2017-02-05 11:12 libs\x86\libcurl.so
- 上一篇:Java研发技术成长路线 思维导图
- 下一篇:java:静态web服务器实现http
相关资源
- justtrustme2019.apk
- 短信信息实时获取
- android 中图片资源的加密
- 成功解决 Android 中文文件名
- java、android、web三端通用的RSA和AES工具
- 会说话的Tom猫 anroid源码
- android studio 3.5
- android网上订餐系统
- 解决Android下getifaddrs和freeifaddrs undef
- Android中利用App实现消息推送机制的代
- Android通用框架设计与完整电商APP开发
- MPAndroidChart.jar MPAndroidChart_3.1.0.jar 最新
- android WIFI DEMO(扫描附近WIFI强度)
- Android调用Camera实现拍照--github地址
- 卡马克卷轴算法android版
- Android 点餐系统体系结构设计 UML
- Android中opengl es要实现Obj格式的3D导入
- Android捏泡泡游戏
- android 引入A*算法
- Android开发从入门到精通第2版.rar
- Android智能穿戴设备开发实战详解.ra
- android版《魔塔》
- Android中FTP含进度上传、、删除文件
- android源码程序:安卓闹钟
- android聊天室客户端与服务端PC代码
- android触摸时扭曲变形图片照片,图片
- Android音频和视频播放
- android 自定义相机可连续拍照,不变形
- android 星级评分条的用法
- android4.2 gps hal
评论
共有 条评论