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 得到下载文件大小

curl 使用简介的更多相关文章

  1. curl 命令简介

    curl命令用于在命令行中发送HTTP请求: curl -i -H 'content-type: application/json' -X POST -d '{"name":&qu ...

  2. curl命令简介

    curl 文件传输工具 参数: -c --cokie-jar: 将cookie写入到文件 -b --cokie: 从文件中读取cookie -C --continue-at: 断点续传 -d --da ...

  3. PHP curl是什么

    PHP curl是什么 一.总结 一句话总结:PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯. libcurl库 允许你与各种的 ...

  4. 《CURL技术知识教程》系列分享专栏

    <CURL技术知识教程>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201737.html 文章 PHP采集相关教程之一 CUR ...

  5. 整理Linux查看系统日志的一些经常使用命令

    整理Linux查看系统日志的一些经常使用命令 last -a 把从何处登入系统的主机名称或ip地址,显示在最后一行. -d 指定记录文件.指定记录文件.将IP地址转换成主机名称. -f <记录文 ...

  6. Python接口测试实战1(下)- 接口测试工具的使用

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  7. curl简介、安装及使用

    目录 curl简介 curl安装 curl使用 curl简介 curl是Linux下一个强大的文件传输工具,它利用URL语法在命令行方式下工作,支持文件上传和下载. curl安装 Ubuntu系统键入 ...

  8. curl 基本使用简介

    curl是Linux下一个非常著名的下载库,通过这个库,可以很简单的实现文件的下载等操作.看一个简单的例子: #include <curl/curl.h> #include <std ...

  9. CURL 简介【转载】

    转自http://hancang2010.blog.163.com/blog/static/1824602612010711104018261/ 0) 头信息 curl命令查询服务器头信息 curl ...

随机推荐

  1. js 数字,金额 用逗号 隔开。数字格式化

    例如: 12345格式化为12,345.00 12345.6格式化为12,345.60 12345.67格式化为 12,345.67 只留两位小数. 回来后写了个格式化函数.可以控制小数位数,自动四舍 ...

  2. 巧妙使用checkbox制作纯css动态导航栏

    前提:很多时候.我们的网页都需要一个垂直的导航栏.可以分类.有分类.自然就有展开.关闭的功能.你还在使用jquery操作dom来制作吗?那你就out了! 方案:使用checkbox 的 checked ...

  3. 之前可运行mongodb,后来却不行了显示Unclean shutdown detected mongodb

    解决办法有三个: 第一个:如果你之前可以运行,说明你已经有数据存放目录了,你可以把数据存放目录之前的数据清空再启动,在配置一下 第二个:使用mongod --repair --dbpath D:\Mo ...

  4. SQL技术内幕一

    范式:关系模型的规范化规则. Codd提出的三个数据库范式: 1. 第一范式 第一范式要求表中的每一行都是必须是唯一的.因为关系型数据库是基于集合论的,而集合的定义中,要求每一个元素都是唯一的(在关系 ...

  5. Reactor模式(反应器模式)

    Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些.通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或 ...

  6. Windows操作系统常用快捷键

    复制:ctrl+c       剪切:ctrl+x      粘贴:ctrl+v       全选:ctrl+a         撤消:ctrl+z      保存:ctrl+s 运行:win+r   ...

  7. <一> MVC - HtmlHelper

    HtmlHelper类位于System.Web.Mvc.Html之中主要有七个静态类组成: FormExtensions - BeginForm, BeginRouteForm, EndForm In ...

  8. [Jquery] Jquery获取浏览器宽高的代码

    <script type="text/javascript"> $(document).ready(function() { alert($(window).heigh ...

  9. linux运维面试题

    一.有文件file1 1.查询file1 里面空行的所在行号 grep -n "^#" file1 or awk ‗{if($0~/^$/)print NR}‘ file or g ...

  10. csuoj 1353: Guessing the Number

    这个题我想到要用kmp找到循环节: 但是后面的我就不会做了: 看到题解才知道是字符串的最小表示: #include<cstdio> #include<cstring> #inc ...