libcurl库的使用的一些心得
一、概述
最近由于要做一个下载工具,最开始想到了libcurl库,和它提供的一些接口。网上的很多资料都是不全,或者是没有什么例子的,由于资质驽钝,使用libcurl库提供的api总是不那么顺畅。最后通过自己努力和查看官网提供的一些帮助文档和例子,终于把这个下载器制作出来了,现在把一些心得写出来,供后来人少走些弯路吧。(国内的程序猿总是没有多少分享精神的,很多资料的都是这copy点,那里copy点的,要不就在官网弄点英文资料,前面加几句话说,这个很全什么的,看的我想骂娘)
二、libcurl提供的一些api的使用
1、CURLcode curl_global_init(long flags);----全局初始化函数,在windows下使用CURL_GLOBAL_WIN32,初始化win sock的一些信息。
2、CURL *curl_easy_init();-----初始化一个CURL*的句柄。
3、CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);----设置http的一些属性,设置给libcurl
4、CURLM *curl_multi_init(void);------初始化一个CURLM * 句柄,使用这个可以实现非阻塞模式,建议使用该函数
5、CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *curl_handle);----把CURL*句柄添加到CURLM * 中
6、CURLcode curl_easy_perform(CURL *curl);----执行下载或者上传任务,执行的是函数curl_easy_setopt设置的一些选项
7、CURLMcode curl_multi_perform(CURLM *multi_handle, i