libcurl下载文件
一、初始化
CURL *pHandler = curl_easy_init();
二、设置请求参数;
调用curl_easy_setopt方法,设置选项
curl_easy_setopt(pHandler , CURLOPT_WRITEFUNCTION, WriteData);
curl_easy_setopt(pHandler , CURLOPT_WRITEDATA, pFile);
//设置请求的url地址
curl_easy_setopt(pHandler , CURLOPT_URL, strUrl.c_str());
//如果为post请求,这里设置提交的参数
//curl_easy_setopt(pHandler , CURLOPT_POSTFIELDS, strPostData.c_str());
curl_easy_setopt(pHandler , CURLOPT_FAILONERROR, true);
curl_easy_setopt(pHandler , CURLOPT_TIMEOUT, 60); //超时时间(秒)
curl_easy_setopt(pHandler , CURLOPT_NOSIGNAL, true);
三、执行下载
CURLcode codeRet = curl_easy_perform(pHandler);
四、获取返回的http状态码
long retcode = 0;
curl_easy_getinfo(pHandler, CURLINFO_RESPONSE_CODE , &retcode);
五、清理
curl_easy_cleanup(pHandler);
if (codeRet == CURLE_OK && (retcode == 200 || retcode == 304 || retcode == 204))
{
//下载成功
}
else
{
//下载失败
}
size_t WriteData(const char *ptr, size_t size, size_t nmemb, FILE *stream)
{
if (!ptr || !stream)
{
return 0;
}
return fwrite(ptr, size, nmemb, stream);
}
关于文件的读写操作,可以参考这里:
libcurl下载文件的更多相关文章
- 使用libcurl下载文件小例
libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...
- c/c++常用代码--使用libcurl下载文件
#pragma once #include <stdio.h>#include <stdlib.h> #include <curl/curl.h> #ifdef ...
- libcurl下载文件简易demo
size_t test_save(void *ptr, size_t size, size_t nmemb, void *stream) { size_t sizes = size * nmemb; ...
- 使用libcurl下载https地址的文件
使用libcurl下载https地址的文件 void downLoadFile(std::string filename, std::string newFilename) { CURL *curl_ ...
- 使用libcurl开源库和Duilib做的下载文件并显示进度条的小工具
转载:http://blog.csdn.net/mfcing/article/details/43603525 转载:http://blog.csdn.net/infoworld/article/de ...
- libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)
转载:http://blog.csdn.net/fengshuiyue/article/details/39530093(基本教程) 转载:https://my.oschina.net/u/14207 ...
- libcurl使用心得-包括下载文件不存在处理相关(转)
libcurl使用心得 Libcurl为一个免费开源的,客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持 ...
- [libcurl]_[0基础]_[使用libcurl下载大文件]
场景: 1. 在Windows编程时, 下载http页面(html,xml)能够使用winhttp库,可是并非非常下载文件,由于会失败. 由此引出了WinINet库,无奈这个库的稳定性比較低,使用样例 ...
- 使用curl在命令行中下载文件
http://m.blog.csdn.net/blog/mayadong7349/7019208 使用curl在命令行中下载文件 linux下curl简单应用详解 http://blog.sina.c ...
随机推荐
- Oracle JDK vs OpenJDK
OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea.UltraViolet都是从OpenJDK源码衍生出的 ...
- 准备尝试openFrameworks
用PCL(Point Cloud Library)已经两年多,当时选择PCL的原因是适合使用的也仅仅知道CGAL和PCL,而CGAL太大,又无从下手,所以选择了PCL. 一开始安装和配置PCL就被虐的 ...
- 兼容到ie10的js文件导出、下载到本地
话不多说,上代码: try { let reader = new FileReader(); let blob = new Blob([res.data], { type: 'application/ ...
- PHP实现数据分页显示
分页在后台管理中是经常使用的功能,分页显示方便大量数据的管理. 实例代码如下: <!DOCTYPE html> <html> <head> <meta cha ...
- ADNI以及study design简介
相关名词: MCI:轻度认知功能障碍 EMCI:早期认知障碍 MCI:轻度认知障碍 LMCI:晚期认知障碍 CN:认知正常的志愿者 DTI:doppler tissue imaging,多普勒组织显像 ...
- pip 安装包提速
豆瓣源 pip3 install 第三方库名 -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
- hdu 1073 字符串处理
题意:给一系列的输出和标准答案,比较二者是AC,PE或WA 字符串处理还是比较薄弱,目前没什么时间搞字符串专题,所以遇到一题就努力搞懂 #include<cstdio> #include& ...
- 吴恩达-coursera-机器学习-week2
四.多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降 ...
- 高性能server分析 - Hadoop的RpcServer
一.Listener Listener线程,当Server处于运行状态时,其负责监听来自客户端的连接,并使用Select模式处理Accept事件. 同时,它开启了一个空闲连接(Idle Connect ...
- 10 个理由让你继续干 IT
1.钱,钱,钱 对,我们努力工作就是为了赚钱,而IT专业人士的努力工作的确得到了很好的补偿.报酬不仅仅是好而已,而是非常棒.根据美国劳工部<2010年美国 就业与报酬情况概览>(表6,PD ...