• 大小: 873KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: Java
  • 标签: libcurl  android  ssl  

资源简介

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

评论

共有 条评论