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 如果你不需要http的body部分(除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 得到下载文件大小
- libcurl简单使用介绍
- 使用libcurl进行文件下载类项目开发(一) libcurl简单使用介绍
- libcurl的简单使用
- libcurl的简单使用
- libcurl的简单使用
- cURL简单使用、libcurl编程
- cURL简单使用、libcurl编程
- libcUrl 简单使用(一)
- libcurl简单接口的使用
- C++ libcurl 使用简单描述
- libcurl的简单实例使用
- 全面详细介绍libcurl的使用
- libcurl介绍
- libcurl 介绍
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- libcurl简单接口的使用(FTP)
- apache log4j(3)-introduction(3)
- Javascript编写的SIP终端:jssip
- Extjs3.0 checkboxGroup 动态添加
- apache log4j(3)-introduction(4)
- 威威猫系列故事——篮球梦
- libcurl简单使用介绍
- 关于Integer大小比较的问题
- iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备
- Linux下设置struts2 struts.multipart.saveDir问题
- 使用GCC4.4,Qt4.7.4编译QtLua revision 221
- puTTY与SecureCRT的比较
- win8使用习惯设置
- android访问http服务器的几种方法
- 工业企业财务账务处理