libcurl简单使用介绍

来源:互联网 发布:数据库和缓存一致性 编辑:程序博客网 时间:2024/05/08 20:13

文章转自http://blog.csdn.net/javarat/article/details/8002185

Libcurl使用介绍:

       四个关键函数:

1.      curl_easy_init() 初始化curl环境,新建curl对象,返回对象句柄,使用举例:    CURL *handler = curl_easy_init();

2.      curl_easy_setopt() 各种设置包括URL设置等,使用举例:

  curl_easy_setopt(handler, CURLOPT_URL, “www.baidu.com”),其中中间的参数是设置的类别,比较重要,后面会列举说明.

3.      curl_easy_perform() 开始执行下载操作若下载失败会返回错误码.例如: CURLcode code = curl_easy_perform(handler)

4.      curl_easy_getinfo() 得到各种下载信息包括下载文件名,文件大小等,此操作必须放在curl_easy_perform()之后执行才能得到正确的值.使用举例: long resultCode;

   curl_easy_getinfo(handler, CURLINFO_RESPONSE_CODE, &resultCode);

中间的参数也在后面列举

必要的参数说明

   curl_easy_setopt()参数:

     CURLOPT_URL  设置目标URL地址

     CURLOPT_HEADER 是否包含http,包含则设置为一个非0

     CURLOPT_NOBODY 如果你不需要httpbody部分(header头以外其他部分),设置此项为一个非0

     CURLOPT_TIMETOU 设置一个超时时间,若超过此时间perform会立即返回,返回码为下载失败对应错误码,单位秒.注意此时间为从调用perform开始后的总的下载时间,举例curl_easy_setopt(handler, CURLOPT_TIMEOUT, 30)

设置超时时间为30,即下载必须在30秒内完成,否则返回下载失败

     CURLOPT_CONNECTIONTIMEOUT 连接超时时间,单位秒.这个参数在easy curl下载中基本没什么实用价值.

     CURLOPT_RESUME_FROM_LARGE 从什么位置开始下载,断点续传主要使用此参数进行配置,使用非常简单,只需要传递一个字节偏移量即可,例如

 curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 0),表示从第0个字节开始下载, curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, 500),从第500个字节开始下载

     CURLOPT_RANGE 下载指定字节的文件块,参数对应的值格式为X-Y,例如curl_easy_setopt(handler, CURLOPT_ RESUME_FROM, “500-999”),下载从500个字节开始到999字节结束的文件块

     CURLOPT_NOPROGRESS 如果不需要下载进度设置此项为一个非0

     CURLOPT_PROGRESSFUNCTION 设置回调的进度函数,设置后,会不断的调用进度函数,并传递参数总大小和已下载大小给该函数

     CURLOPT_PROGRESSDATA 设置传递给回调的进度函数的一个参数,类型为字符串类型,后面jwisp会举例说明

curl_easy_getinfo() 部分参数说明

     CURLINFO_RESPONSE_CODE 得到perform的执行结果码

     CURLINFO_CONTENT_LENGTH_DOWNLOAD 得到下载文件大小