前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >libcurl下载文件

libcurl下载文件

作者头像
meteoric
发布2018-11-20 11:40:13
2.5K0
发布2018-11-20 11:40:13
举报
文章被收录于专栏:游戏杂谈

一、初始化

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); }

关于文件的读写操作,可以参考这里:

fopen

fseek

ftell

fread

fwrite

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-04-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档