接前一篇文章:认识libcurl(1)

二、流程及相关接口函数
1. 流程
利用libcurl完成传输任务的流程如下:
1)调用curl_global_init函数初始化libcurl;
2)调用curl_easy_init函数得到easy interface型指针;
3)调用curl_easy_setopt函数设置传输选项;
4)根据curl_easy_setopt设置的传输选项,实现回调函数以完成用户特定任务;
5)调用curl_easy_perform函数完成传输任务;
6)调用curl_easy_cleanup函数释放内存。
2. 相关接口函数
(3)curl_version函数
原型:
cpp
#include <curl/curl.h>
char *curl_version(void);
功能:
获取当前使用的libcurl版本信息(字符串)。
返回值:
指向静态字符串的指针。
注:
不需要调用free()释放。
(4)curl_easy_init函数
原型:
cpp
#include <curl/curl.h>
CURL *curl_easy_init(void);
功能:
curl_easy_init函数用来初始化一个CURL的指针(句柄,有些像返回FILE类型的指针一样),用于后续的下载、上传、HTTP请求。相应地,在调用结束时要用curl_easy_cleanup函数清理。
具体作用如下:
1)申请内存;
2)初始化curl内部状态;
3)设置默认选项(URL、超时、头部等默认值);
4)返回一个可以用来配置/发送请求的句柄(后面所有的curl_easy_setopt、curl_easy_perform函数都必须用这个句柄)。
(5)curl_easy_setopt函数
原型:
cpp
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
功能:
给curl句柄设置各种选项(URL、请求方式、超时、头部、数据、回调等)。
参数:
- CURL *curl:curl_easy_init函数创建的句柄
- CURLoption option:要设置的选项(以
CURLOPT_开头) - ...:对应选项需要的值(数字、字符串、指针、函数地址)
注:
curl_easy_setopt函数是最为重要的函数,几乎所有的curl 程序都要频繁的使用它。它告诉curl库,程序将有如何的行为。
下一回对于curl_easy_setopt函数最为常用的选项进行一一介绍。