资源简介
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
相关资源
- AndroidStudio版直连sqlserver
- android带百分比进度条的文件上传,使
- 美食天下项目Android版源码和Web版源码
- Android之自定义ToggleButton使用
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
- 单机搭建Android(解决Network is unreach
评论
共有 条评论